{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "41ad900f-6941-4451-a61a-fbacdc15d719",
   "metadata": {},
   "outputs": [],
   "source": [
    "# this files creates the dataset and the analysis\n",
    "# since the program is based on the scopus API, whenever the scopus API updates, the numbers change!\n",
    "# hence if you want to get the numbers based on the publications use 'originals final' and 'replications final' \n",
    "# instead of the data files that get created when the code runs\n",
    "\n",
    "# before using publiometrics you might have to install an API Key or run the program on a server that has access\n",
    "# to the API"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "bf25e791-9064-49ff-9431-c59eb1b50fb6",
   "metadata": {},
   "outputs": [],
   "source": [
    "# GENERAL DATA PREP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "8e6e6d49-3aea-4f17-b70b-5405a36332eb",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "#Creates a dataframe for the replication papers and one for the original papers from the excel file\n",
    "import pandas as pd \n",
    "#xls_file = pd.ExcelFile('Copy of All included eids revised - wiki and bob combined - based on files with explanations.xlsx') \n",
    "#df = xls_file.parse('Sheet1')\n",
    "\n",
    "xls_file = pd.ExcelFile('Replication Studies ALL INFO (20240830) FINAL.xlsx') \n",
    "#print(xls_file.sheet_names)\n",
    "df = xls_file.parse('ALL')\n",
    "df=df.rename(columns={'EID Replication':'EID replication', 'EID Original':'EID original'})\n",
    "df=df.dropna(subset=['EID replication','EID original']).reset_index(drop=True)\n",
    "\n",
    "# we want to have at least 3 years of citation data\n",
    "df=df[df['Year']<2022].reset_index(drop=True)\n",
    "\n",
    "#print(len(df))\n",
    "EIDo = df['EID original'] #makes a list of all the original EIDs\n",
    "EIDr = df['EID replication'] #makes a list of all the replication EIDs\n",
    "replications = pd.DataFrame(df, columns=[\"EID replication\", \"replication\", 'Confirmed (1,0)', 'Disconfirmed (1,0)', 'Mixed/Unclear (1,0)'])\n",
    "originals = pd.DataFrame(df, columns=[\"EID original\", \"original\"])\n",
    "#print(replications)\n",
    "#print(originals)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "f48d9e59-7a90-44d9-983a-8e1a49a68328",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Defaulting to user installation because normal site-packages is not writeable\n",
      "Requirement already satisfied: pybliometrics in /data/tco55/.local/lib/python3.9/site-packages (3.4.0)\n",
      "Requirement already satisfied: pbr in /data/tco55/.local/lib/python3.9/site-packages (from pybliometrics) (5.11.0)\n",
      "Requirement already satisfied: requests in /opt/miniconda/lib/python3.9/site-packages (from pybliometrics) (2.31.0)\n",
      "Requirement already satisfied: simplejson in /data/tco55/.local/lib/python3.9/site-packages (from pybliometrics) (3.18.0)\n",
      "Requirement already satisfied: tqdm in /opt/miniconda/lib/python3.9/site-packages (from pybliometrics) (4.65.0)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in /opt/miniconda/lib/python3.9/site-packages (from requests->pybliometrics) (3.2.0)\n",
      "Requirement already satisfied: idna<4,>=2.5 in /opt/miniconda/lib/python3.9/site-packages (from requests->pybliometrics) (3.4)\n",
      "Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/miniconda/lib/python3.9/site-packages (from requests->pybliometrics) (2.0.3)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in /opt/miniconda/lib/python3.9/site-packages (from requests->pybliometrics) (2023.11.17)\n",
      "Note: you may need to restart the kernel to use updated packages.\n"
     ]
    }
   ],
   "source": [
    "pip install pybliometrics #imports the pybliometrics program"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "428253f5-8416-4108-bc88-d3fd996a945d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['140', '69']\n"
     ]
    }
   ],
   "source": [
    "#Gets some basic information about the original papers that is needed later on\n",
    "from pybliometrics.scopus import AbstractRetrieval #this is the abstract retrieval API, first time you run it, you may need to type in API key, or can use config code at bottom of file\n",
    "\n",
    "#Adds the number of cites, release year, author ID numbers and author names for each original paper\n",
    "originalcites = []\n",
    "originalyears = []\n",
    "originalauthors = []\n",
    "originalauthorsid = []\n",
    "originalID = []\n",
    "originalpagecount = []\n",
    "originaljournalname=[]\n",
    "originalsource=[]\n",
    "originalissn=[]\n",
    "for i in originals['EID original']:\n",
    "    try:\n",
    "        ab = AbstractRetrieval(i, view='FULL', refresh = 2) #this retrieves the abstract for the EID from current iteration and saves it as ab, refreshes once every day\n",
    "    #Number of cites   \n",
    "        originalcites = originalcites + [float(ab.citedby_count)] #gets cited by count from abstract\n",
    "    #Year of release \n",
    "        originalyears = originalyears + [int(ab.coverDate[:4])] #gets release year for paper\n",
    "    #Author ID numbers\n",
    "        authorsid = []\n",
    "        for ii in range(0,len(ab.authors)):\n",
    "            authorsid = authorsid + [ab.authors[ii][0]] #gets author/s ID from abstract and saves as list\n",
    "        originalauthorsid = originalauthorsid + [authorsid]\n",
    "    #Author names\n",
    "        authorsname = []\n",
    "        for ii in range(0,len(ab.authors)):\n",
    "            authorsname = authorsname + [ab.authors[ii][1]] #gets author/s name from abstract and saves as list\n",
    "        originalauthors = originalauthors + [authorsname]\n",
    "\n",
    "        originaljournalname = originaljournalname + [ab.publicationName] #gets cited by count from abstract\n",
    "\n",
    "    # page count - some have missing page counts so do need try except here\n",
    "        try:\n",
    "            y = ab.pageRange.replace('E','').replace('e','').replace('+I','').replace('F','').replace('S','').replace('i','').split('-')\n",
    "            \n",
    "            if len(y) == 1:\n",
    "                originalpagecount += [1]\n",
    "            else:\n",
    "                if int(y[1])>=int(y[0]):\n",
    "                    originalpagecount += [int(y[1])-int(y[0])+1]\n",
    "                else:\n",
    "                    print(y)\n",
    "                    originalpagecount += [100+int(y[1])-int(y[0])+1]\n",
    "        except:\n",
    "            originalpagecount += [None]\n",
    "\n",
    "        try:\n",
    "            originalsource += [str(ab.source_id)] #Gets source ID for the publication that the \n",
    "        except:\n",
    "            originalsource += [None]\n",
    "        try:\n",
    "            originalissn += [str(ab.issn)] #Gets source ID for the publication that the \n",
    "        except:\n",
    "            originalissn += [None]\n",
    "    \n",
    "    except:\n",
    "        print(i)\n",
    "        originalcites += [None] #Because some EID links no longer work, have to save as none, couldn't delete yet otherwise the two dataframes wont align\n",
    "        originalyears += [None]\n",
    "        originalauthorsid += [None]\n",
    "        originalauthors += [None]\n",
    "        originalID += [None]       \n",
    "        originalpagecount += [None]\n",
    "        originaljournalname+= [None]\n",
    "        originalsource+= [None]\n",
    "        originalissn+= [None]\n",
    "originals['Original Cite no.'] = originalcites\n",
    "originals['Original Year'] = originalyears\n",
    "originals['Original authors ID'] = originalauthorsid\n",
    "originals['Original authors Name'] = originalauthors\n",
    "originals['Original page count'] = originalpagecount\n",
    "originals['Original Journal Name'] = originaljournalname\n",
    "originals['Original Publication ID'] = originalsource\n",
    "originals['Original ISSN'] = originalissn\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c533c3e0-fa69-49fc-a8ab-0004fca269e6",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "270af535-cc0d-4295-97bf-5d7691486e6a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>EID original</th>\n",
       "      <th>original</th>\n",
       "      <th>Original Cite no.</th>\n",
       "      <th>Original Year</th>\n",
       "      <th>Original authors ID</th>\n",
       "      <th>Original authors Name</th>\n",
       "      <th>Original page count</th>\n",
       "      <th>Original Journal Name</th>\n",
       "      <th>Original Publication ID</th>\n",
       "      <th>Original ISSN</th>\n",
       "      <th>Original Scopus ID</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2-s2.0-34250320560</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3332.0</td>\n",
       "      <td>2007</td>\n",
       "      <td>[57189545702]</td>\n",
       "      <td>[Putnam R.D.]</td>\n",
       "      <td>38.0</td>\n",
       "      <td>Scandinavian Political Studies</td>\n",
       "      <td>20943</td>\n",
       "      <td>00806757 14679477</td>\n",
       "      <td>34250320560</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2-s2.0-33847612917</td>\n",
       "      <td>NaN</td>\n",
       "      <td>142.0</td>\n",
       "      <td>2006</td>\n",
       "      <td>[6602205611, 16027849400]</td>\n",
       "      <td>[Adda J., Cornaglia F.]</td>\n",
       "      <td>16.0</td>\n",
       "      <td>American Economic Review</td>\n",
       "      <td>22697</td>\n",
       "      <td>00028282</td>\n",
       "      <td>33847612917</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2-s2.0-0037374498</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3353.0</td>\n",
       "      <td>2003</td>\n",
       "      <td>[6701407035, 7402563291, 7006644573]</td>\n",
       "      <td>[DiMasi J.A., Hansen R.W., Grabowski H.G.]</td>\n",
       "      <td>35.0</td>\n",
       "      <td>Journal of Health Economics</td>\n",
       "      <td>14166</td>\n",
       "      <td>01676296</td>\n",
       "      <td>0037374498</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2-s2.0-0034922812</td>\n",
       "      <td>NaN</td>\n",
       "      <td>308.0</td>\n",
       "      <td>2001</td>\n",
       "      <td>[6602904771, 6603570693]</td>\n",
       "      <td>[Folster S., Henrekson M.]</td>\n",
       "      <td>20.0</td>\n",
       "      <td>European Economic Review</td>\n",
       "      <td>20749</td>\n",
       "      <td>00142921</td>\n",
       "      <td>0034922812</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2-s2.0-34547982767</td>\n",
       "      <td>NaN</td>\n",
       "      <td>166.0</td>\n",
       "      <td>2007</td>\n",
       "      <td>[18934353200, 6505941178, 6505894473, 57208145...</td>\n",
       "      <td>[Gales B., Kander A., Malanima P., Rubio M.]</td>\n",
       "      <td>35.0</td>\n",
       "      <td>European Review of Economic History</td>\n",
       "      <td>28524</td>\n",
       "      <td>13614916 14740044</td>\n",
       "      <td>34547982767</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>423</th>\n",
       "      <td>2-s2.0-28744445395</td>\n",
       "      <td>NaN</td>\n",
       "      <td>94.0</td>\n",
       "      <td>2005</td>\n",
       "      <td>[7003500040, 9744568700, 8904992700, 9744896800]</td>\n",
       "      <td>[Dhaliwal D., Krull L., Li O.Z., Moser W.]</td>\n",
       "      <td>34.0</td>\n",
       "      <td>Journal of Accounting Research</td>\n",
       "      <td>29857</td>\n",
       "      <td>00218456</td>\n",
       "      <td>28744445395</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424</th>\n",
       "      <td>2-s2.0-0000712212</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1345.0</td>\n",
       "      <td>1999</td>\n",
       "      <td>[6602502546, 7202298683, 6603030686]</td>\n",
       "      <td>[Himmelberg C.P., Hubbard R.G., Palia D.]</td>\n",
       "      <td>32.0</td>\n",
       "      <td>Journal of Financial Economics</td>\n",
       "      <td>24379</td>\n",
       "      <td>0304405X</td>\n",
       "      <td>0000712212</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>425</th>\n",
       "      <td>2-s2.0-0346613552</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2491.0</td>\n",
       "      <td>1998</td>\n",
       "      <td>[23080621700, 6602854695]</td>\n",
       "      <td>[Levine R., Zervos S.]</td>\n",
       "      <td>22.0</td>\n",
       "      <td>American Economic Review</td>\n",
       "      <td>22697</td>\n",
       "      <td>00028282</td>\n",
       "      <td>0346613552</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>426</th>\n",
       "      <td>2-s2.0-78650478546</td>\n",
       "      <td>NaN</td>\n",
       "      <td>85.0</td>\n",
       "      <td>2010</td>\n",
       "      <td>[6507662526]</td>\n",
       "      <td>[Weizsacker G.]</td>\n",
       "      <td>21.0</td>\n",
       "      <td>American Economic Review</td>\n",
       "      <td>22697</td>\n",
       "      <td>00028282</td>\n",
       "      <td>78650478546</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>427</th>\n",
       "      <td>2-s2.0-33847627576</td>\n",
       "      <td>NaN</td>\n",
       "      <td>577.0</td>\n",
       "      <td>2006</td>\n",
       "      <td>[56257581700, 6602231734]</td>\n",
       "      <td>[Falk A., Kosfeld M.]</td>\n",
       "      <td>20.0</td>\n",
       "      <td>American Economic Review</td>\n",
       "      <td>22697</td>\n",
       "      <td>00028282</td>\n",
       "      <td>33847627576</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>428 rows × 11 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           EID original  original  Original Cite no.  Original Year  \\\n",
       "0    2-s2.0-34250320560       NaN             3332.0           2007   \n",
       "1    2-s2.0-33847612917       NaN              142.0           2006   \n",
       "2     2-s2.0-0037374498       NaN             3353.0           2003   \n",
       "3     2-s2.0-0034922812       NaN              308.0           2001   \n",
       "4    2-s2.0-34547982767       NaN              166.0           2007   \n",
       "..                  ...       ...                ...            ...   \n",
       "423  2-s2.0-28744445395       NaN               94.0           2005   \n",
       "424   2-s2.0-0000712212       NaN             1345.0           1999   \n",
       "425   2-s2.0-0346613552       NaN             2491.0           1998   \n",
       "426  2-s2.0-78650478546       NaN               85.0           2010   \n",
       "427  2-s2.0-33847627576       NaN              577.0           2006   \n",
       "\n",
       "                                   Original authors ID  \\\n",
       "0                                        [57189545702]   \n",
       "1                            [6602205611, 16027849400]   \n",
       "2                 [6701407035, 7402563291, 7006644573]   \n",
       "3                             [6602904771, 6603570693]   \n",
       "4    [18934353200, 6505941178, 6505894473, 57208145...   \n",
       "..                                                 ...   \n",
       "423   [7003500040, 9744568700, 8904992700, 9744896800]   \n",
       "424               [6602502546, 7202298683, 6603030686]   \n",
       "425                          [23080621700, 6602854695]   \n",
       "426                                       [6507662526]   \n",
       "427                          [56257581700, 6602231734]   \n",
       "\n",
       "                            Original authors Name  Original page count  \\\n",
       "0                                   [Putnam R.D.]                 38.0   \n",
       "1                         [Adda J., Cornaglia F.]                 16.0   \n",
       "2      [DiMasi J.A., Hansen R.W., Grabowski H.G.]                 35.0   \n",
       "3                      [Folster S., Henrekson M.]                 20.0   \n",
       "4    [Gales B., Kander A., Malanima P., Rubio M.]                 35.0   \n",
       "..                                            ...                  ...   \n",
       "423    [Dhaliwal D., Krull L., Li O.Z., Moser W.]                 34.0   \n",
       "424     [Himmelberg C.P., Hubbard R.G., Palia D.]                 32.0   \n",
       "425                        [Levine R., Zervos S.]                 22.0   \n",
       "426                               [Weizsacker G.]                 21.0   \n",
       "427                         [Falk A., Kosfeld M.]                 20.0   \n",
       "\n",
       "                   Original Journal Name Original Publication ID  \\\n",
       "0         Scandinavian Political Studies                   20943   \n",
       "1               American Economic Review                   22697   \n",
       "2            Journal of Health Economics                   14166   \n",
       "3               European Economic Review                   20749   \n",
       "4    European Review of Economic History                   28524   \n",
       "..                                   ...                     ...   \n",
       "423       Journal of Accounting Research                   29857   \n",
       "424       Journal of Financial Economics                   24379   \n",
       "425             American Economic Review                   22697   \n",
       "426             American Economic Review                   22697   \n",
       "427             American Economic Review                   22697   \n",
       "\n",
       "         Original ISSN Original Scopus ID  \n",
       "0    00806757 14679477        34250320560  \n",
       "1             00028282        33847612917  \n",
       "2             01676296         0037374498  \n",
       "3             00142921         0034922812  \n",
       "4    13614916 14740044        34547982767  \n",
       "..                 ...                ...  \n",
       "423           00218456        28744445395  \n",
       "424           0304405X         0000712212  \n",
       "425           00028282         0346613552  \n",
       "426           00028282        78650478546  \n",
       "427           00028282        33847627576  \n",
       "\n",
       "[428 rows x 11 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#adds scopus ID to original paper data frame (needed later on when computing citations since year of replication)\n",
    "scopusid = []\n",
    "for i in range(0,len(originals['EID original'])):\n",
    "    scopusid += [originals['EID original'][i].replace('2-s2.0-','')] #Scopus ID is same as EID without “2-s2.0-“, but citation overview API doesn't take EID\n",
    "originals['Original Scopus ID'] = scopusid  \n",
    "originals"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "1cb913ee-9620-4250-9575-a2bcfb566999",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>EID original</th>\n",
       "      <th>original</th>\n",
       "      <th>Original Cite no.</th>\n",
       "      <th>Original Year</th>\n",
       "      <th>Original authors ID</th>\n",
       "      <th>Original authors Name</th>\n",
       "      <th>Original page count</th>\n",
       "      <th>Original Journal Name</th>\n",
       "      <th>Original Publication ID</th>\n",
       "      <th>Original ISSN</th>\n",
       "      <th>Original Scopus ID</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>313</th>\n",
       "      <td>2-s2.0-0038954679</td>\n",
       "      <td>NaN</td>\n",
       "      <td>398.0</td>\n",
       "      <td>1997</td>\n",
       "      <td>[7102972488, 6602208598]</td>\n",
       "      <td>[Lott Jr. J.R., Mustard D.B.]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Journal of Legal Studies</td>\n",
       "      <td>16269</td>\n",
       "      <td>00472530</td>\n",
       "      <td>0038954679</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          EID original  original  Original Cite no.  Original Year  \\\n",
       "313  2-s2.0-0038954679       NaN              398.0           1997   \n",
       "\n",
       "          Original authors ID          Original authors Name  \\\n",
       "313  [7102972488, 6602208598]  [Lott Jr. J.R., Mustard D.B.]   \n",
       "\n",
       "     Original page count     Original Journal Name Original Publication ID  \\\n",
       "313                  NaN  Journal of Legal Studies                   16269   \n",
       "\n",
       "    Original ISSN Original Scopus ID  \n",
       "313      00472530         0038954679  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# double check missing PAGE COUNT\n",
    "import numpy as np\n",
    "originals[originals['Original page count'].isna()]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "d6269b18-9427-465b-97a4-8cd962994a3f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n"
     ]
    }
   ],
   "source": [
    "# some originals might not really work - f.e. they are in scopus, you can find them in the references of the replications\n",
    "# but they don't have a standard scopus page and hence no citation counts are gathered\n",
    "print(len(originals[originals['Original Cite no.'].isna()]))\n",
    "# so we will delete these to have a fixed sample of original and replication pairs\n",
    "# we delete from both replications and originals\n",
    "replications=replications[originals['Original Cite no.'].notna()].reset_index(drop=True)\n",
    "originals=originals[originals['Original Cite no.'].notna()].reset_index(drop=True)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "2c7ef21a-e830-4811-a111-455d1364046d",
   "metadata": {},
   "outputs": [],
   "source": [
    "#adds scopus ID to original paper data frame (needed later on)\n",
    "scopusid = []\n",
    "for i in range(0,len(originals['EID original'])):\n",
    "    scopusid += [originals['EID original'][i].replace('2-s2.0-','')] #Scopus ID is same as EID without “2-s2.0-“, but citation overview API doesn't take EID\n",
    "originals['Original Scopus ID'] = scopusid  \n",
    "#originals"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "d104b8c9-62c8-40af-b099-a078dd5bcdd3",
   "metadata": {},
   "outputs": [],
   "source": [
    "#Gets some basic information about the replication papers that is needed later on\n",
    "#Adds the number of cites, release year, author ID numbers and author names for each replication paper\n",
    "\n",
    "from pybliometrics.scopus import AbstractRetrieval \n",
    "replicationsource = []\n",
    "replicationvolume = []\n",
    "replicationissue = []\n",
    "replicationcites = []\n",
    "replicationyears = []\n",
    "replicationauthors = []\n",
    "replicationauthorsid = []\n",
    "replicationpagecount=[]\n",
    "replicationjournalname=[]\n",
    "replicationissn=[]\n",
    "\n",
    "for i in replications['EID replication']:\n",
    "    try:\n",
    "        ab = AbstractRetrieval(i, view='FULL', refresh = 2)  #this retrieves the abstract for the EID from current iteration and saves it as ab, refreshes each day\n",
    "    #Citation counts\n",
    "        replicationcites = replicationcites + [float(ab.citedby_count)] #gets cited by count from abstract\n",
    "    #Year of release\n",
    "        replicationyears = replicationyears + [int(ab.coverDate[:4])] #saves release year\n",
    "    #Author ID numbers\n",
    "        authorsid = []\n",
    "        for ii in range(0,len(ab.authors)):\n",
    "            authorsid = authorsid + [ab.authors[ii][0]] #gets author/s ID from abstract and saves as list\n",
    "        replicationauthorsid = replicationauthorsid + [authorsid]\n",
    "    #Author names\n",
    "        authorsname = []\n",
    "        for ii in range(0,len(ab.authors)):\n",
    "            authorsname = authorsname + [ab.authors[ii][1]] #gets author/s Name from abstract and saves as list\n",
    "        replicationauthors = replicationauthors + [authorsname]\n",
    "        replicationjournalname = replicationjournalname + [ab.publicationName] #gets cited by count from abstract\n",
    "\n",
    "    # page count - some have missing page counts so do need try except here\n",
    "        try:\n",
    "            y = ab.pageRange.replace('E','').replace('e','').replace('+I','').replace('F','').replace('S','').replace('i','').split('-')\n",
    "            \n",
    "            if len(y) == 1:\n",
    "                replicationpagecount += [1]\n",
    "            else:\n",
    "                if int(y[1])>=int(y[0]):\n",
    "                    replicationpagecount += [int(y[1])-int(y[0])+1]\n",
    "                else:\n",
    "                    print(y)\n",
    "                    replicationpagecount += [100+int(y[1])-int(y[0])+1]\n",
    "        except:\n",
    "            replicationpagecount += [None]\n",
    "\n",
    "    # volume info\n",
    "        try:\n",
    "            replicationsource += [str(ab.source_id)] #Gets source ID for the publication that the \n",
    "        except:\n",
    "            replicationsource += [None]\n",
    "        \n",
    "            #Publication volume\n",
    "        try:\n",
    "            replicationvolume = replicationvolume + [str(ab.volume)]\n",
    "        except:\n",
    "            replicationvolume += [None]\n",
    "        \n",
    "        #Publication issue\n",
    "        try:\n",
    "            replicationissue = replicationissue + [str(ab.issueIdentifier)]\n",
    "        except:\n",
    "            replicationissue += [None]\n",
    "        #issn\n",
    "        try:\n",
    "            replicationissn = replicationissn + [str(ab.issn)]\n",
    "        except:\n",
    "            replicationissn += [None]\n",
    "        \n",
    "    except:\n",
    "        replicationcites += [None] #Because some EID links no longer work, have to save as none, couldn't delete yet otherwise the two dataframes wont align\n",
    "        replicationyears += [None]\n",
    "        replicationauthorsid += [None]\n",
    "        replicationauthors += [None]\n",
    "        replicationpagecount+= [None]\n",
    "        replicationsource += [None]\n",
    "        replicationvolume += [None]\n",
    "        replicationissue += [None]\n",
    "        replicationjournalname+= [None]\n",
    "        replicationissn+= [None]\n",
    "\n",
    "\n",
    "replications['Replication Cite no.'] = replicationcites\n",
    "replications['Replication Year'] = replicationyears\n",
    "replications['Replication authors ID'] = replicationauthorsid\n",
    "replications['Replication authors Name'] = replicationauthors\n",
    "replications['Replication page count'] = replicationpagecount\n",
    "replications['Publication ID'] = replicationsource\n",
    "replications['Publication volume'] = replicationvolume\n",
    "replications['Publication issue'] = replicationissue\n",
    "replications['Replication Journal Name'] = replicationjournalname\n",
    "replications['Replication ISSN'] = replicationissn\n",
    "\n",
    "# correction - scopus has wrong pages which lead to unreasonable page count of 161 - correct is 61\n",
    "replications.loc[0,'Replication page count']=61"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "28e9138c-139b-4afa-b8bc-8b3215810430",
   "metadata": {},
   "outputs": [],
   "source": [
    "#Citations from original paper after the replication paper was released:\n",
    "# this relies on replication year just created\n",
    "from pybliometrics.scopus import CitationOverview\n",
    "citesafterrepl = []\n",
    "for i in range(0,len(originals)):\n",
    "    try:\n",
    "        co = CitationOverview([originals['Original Scopus ID'][i]], start = int(replications['Replication Year'][i]), refresh = 2)\n",
    "        citesafterrepl += co.rangeCount\n",
    "    except:\n",
    "        citesafterrepl += [None]\n",
    "\n",
    "originals['Original cites after replication'] = citesafterrepl\n",
    "#originals\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "b40dc0fa-bd02-4bff-be80-00d54d3b2f82",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>EID replication</th>\n",
       "      <th>replication</th>\n",
       "      <th>Confirmed (1,0)</th>\n",
       "      <th>Disconfirmed (1,0)</th>\n",
       "      <th>Mixed/Unclear (1,0)</th>\n",
       "      <th>Replication Cite no.</th>\n",
       "      <th>Replication Year</th>\n",
       "      <th>Replication authors ID</th>\n",
       "      <th>Replication authors Name</th>\n",
       "      <th>Replication page count</th>\n",
       "      <th>Publication ID</th>\n",
       "      <th>Publication volume</th>\n",
       "      <th>Publication issue</th>\n",
       "      <th>Replication Journal Name</th>\n",
       "      <th>Replication ISSN</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>2-s2.0-85068506074</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2018</td>\n",
       "      <td>[6603014545]</td>\n",
       "      <td>[Belaire-Franch J.]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>5800197592</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "      <td>Economics</td>\n",
       "      <td>18646042</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>100</th>\n",
       "      <td>2-s2.0-85073622082</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>2019</td>\n",
       "      <td>[49862872000, 36473068900]</td>\n",
       "      <td>[Chin Y.-M., Cunningham S.]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>29009</td>\n",
       "      <td>179</td>\n",
       "      <td>None</td>\n",
       "      <td>Journal of Public Economics</td>\n",
       "      <td>00472727</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>118</th>\n",
       "      <td>2-s2.0-85067050757</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2018</td>\n",
       "      <td>[6603149587]</td>\n",
       "      <td>[Coupe T.]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>5800197592</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "      <td>Economics</td>\n",
       "      <td>18646042</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>150</th>\n",
       "      <td>2-s2.0-85043449502</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2018</td>\n",
       "      <td>[7404536686]</td>\n",
       "      <td>[Edwards J.]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>5800197592</td>\n",
       "      <td>12</td>\n",
       "      <td>None</td>\n",
       "      <td>Economics</td>\n",
       "      <td>18646042</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>217</th>\n",
       "      <td>2-s2.0-85100422545</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>11.0</td>\n",
       "      <td>2021</td>\n",
       "      <td>[57219600138, 25635833300]</td>\n",
       "      <td>[Hoang T.T.A., Knabe A.]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>22915</td>\n",
       "      <td>83</td>\n",
       "      <td>None</td>\n",
       "      <td>Journal of Economic Psychology</td>\n",
       "      <td>01674870</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>218</th>\n",
       "      <td>2-s2.0-85100422545</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>11.0</td>\n",
       "      <td>2021</td>\n",
       "      <td>[57219600138, 25635833300]</td>\n",
       "      <td>[Hoang T.T.A., Knabe A.]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>22915</td>\n",
       "      <td>83</td>\n",
       "      <td>None</td>\n",
       "      <td>Journal of Economic Psychology</td>\n",
       "      <td>01674870</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>288</th>\n",
       "      <td>2-s2.0-85020226942</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>2017</td>\n",
       "      <td>[14035665800]</td>\n",
       "      <td>[Liebowitz S.J.]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>5800197592</td>\n",
       "      <td>11</td>\n",
       "      <td>None</td>\n",
       "      <td>Economics</td>\n",
       "      <td>18646042</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>316</th>\n",
       "      <td>2-s2.0-85043477479</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>50.0</td>\n",
       "      <td>2018</td>\n",
       "      <td>[55750627400, 24169606700, 7201848395]</td>\n",
       "      <td>[Moundigbaye M., Rea W.S., Reed W.R.]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>5800197592</td>\n",
       "      <td>12</td>\n",
       "      <td>None</td>\n",
       "      <td>Economics</td>\n",
       "      <td>18646042</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>327</th>\n",
       "      <td>2-s2.0-85078823558</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>19.0</td>\n",
       "      <td>2020</td>\n",
       "      <td>[55370122700, 55750318900]</td>\n",
       "      <td>[Ouellette L.L., Tutt A.]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15662</td>\n",
       "      <td>61</td>\n",
       "      <td>None</td>\n",
       "      <td>International Review of Law and Economics</td>\n",
       "      <td>01448188</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>349</th>\n",
       "      <td>2-s2.0-85055903543</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>2019</td>\n",
       "      <td>[36477559900]</td>\n",
       "      <td>[Sah S.]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>22915</td>\n",
       "      <td>75</td>\n",
       "      <td>None</td>\n",
       "      <td>Journal of Economic Psychology</td>\n",
       "      <td>01674870</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>411</th>\n",
       "      <td>2-s2.0-36549018577</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>2007</td>\n",
       "      <td>[7003685151, 22136293600]</td>\n",
       "      <td>[Yamamura E., Shin I.]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>6700153287</td>\n",
       "      <td>15</td>\n",
       "      <td>3</td>\n",
       "      <td>Economics Bulletin</td>\n",
       "      <td>15452921</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        EID replication  replication  Confirmed (1,0)  Disconfirmed (1,0)  \\\n",
       "46   2-s2.0-85068506074          NaN                0                   0   \n",
       "100  2-s2.0-85073622082          NaN                0                   1   \n",
       "118  2-s2.0-85067050757          NaN                1                   0   \n",
       "150  2-s2.0-85043449502          NaN                0                   1   \n",
       "217  2-s2.0-85100422545          NaN                0                   0   \n",
       "218  2-s2.0-85100422545          NaN                0                   0   \n",
       "288  2-s2.0-85020226942          NaN                0                   1   \n",
       "316  2-s2.0-85043477479          NaN                0                   0   \n",
       "327  2-s2.0-85078823558          NaN                0                   1   \n",
       "349  2-s2.0-85055903543          NaN                1                   0   \n",
       "411  2-s2.0-36549018577          NaN                0                   1   \n",
       "\n",
       "     Mixed/Unclear (1,0)  Replication Cite no.  Replication Year  \\\n",
       "46                     1                   1.0              2018   \n",
       "100                    0                  26.0              2019   \n",
       "118                    0                   3.0              2018   \n",
       "150                    0                   0.0              2018   \n",
       "217                    1                  11.0              2021   \n",
       "218                    1                  11.0              2021   \n",
       "288                    0                   6.0              2017   \n",
       "316                    1                  50.0              2018   \n",
       "327                    0                  19.0              2020   \n",
       "349                    0                   5.0              2019   \n",
       "411                    0                   5.0              2007   \n",
       "\n",
       "                     Replication authors ID  \\\n",
       "46                             [6603014545]   \n",
       "100              [49862872000, 36473068900]   \n",
       "118                            [6603149587]   \n",
       "150                            [7404536686]   \n",
       "217              [57219600138, 25635833300]   \n",
       "218              [57219600138, 25635833300]   \n",
       "288                           [14035665800]   \n",
       "316  [55750627400, 24169606700, 7201848395]   \n",
       "327              [55370122700, 55750318900]   \n",
       "349                           [36477559900]   \n",
       "411               [7003685151, 22136293600]   \n",
       "\n",
       "                  Replication authors Name  Replication page count  \\\n",
       "46                     [Belaire-Franch J.]                     NaN   \n",
       "100            [Chin Y.-M., Cunningham S.]                     NaN   \n",
       "118                             [Coupe T.]                     NaN   \n",
       "150                           [Edwards J.]                     NaN   \n",
       "217               [Hoang T.T.A., Knabe A.]                     NaN   \n",
       "218               [Hoang T.T.A., Knabe A.]                     NaN   \n",
       "288                       [Liebowitz S.J.]                     NaN   \n",
       "316  [Moundigbaye M., Rea W.S., Reed W.R.]                     NaN   \n",
       "327              [Ouellette L.L., Tutt A.]                     NaN   \n",
       "349                               [Sah S.]                     NaN   \n",
       "411                 [Yamamura E., Shin I.]                     NaN   \n",
       "\n",
       "    Publication ID Publication volume Publication issue  \\\n",
       "46      5800197592                 12                 1   \n",
       "100          29009                179              None   \n",
       "118     5800197592                 12                 1   \n",
       "150     5800197592                 12              None   \n",
       "217          22915                 83              None   \n",
       "218          22915                 83              None   \n",
       "288     5800197592                 11              None   \n",
       "316     5800197592                 12              None   \n",
       "327          15662                 61              None   \n",
       "349          22915                 75              None   \n",
       "411     6700153287                 15                 3   \n",
       "\n",
       "                      Replication Journal Name Replication ISSN  \n",
       "46                                   Economics         18646042  \n",
       "100                Journal of Public Economics         00472727  \n",
       "118                                  Economics         18646042  \n",
       "150                                  Economics         18646042  \n",
       "217             Journal of Economic Psychology         01674870  \n",
       "218             Journal of Economic Psychology         01674870  \n",
       "288                                  Economics         18646042  \n",
       "316                                  Economics         18646042  \n",
       "327  International Review of Law and Economics         01448188  \n",
       "349             Journal of Economic Psychology         01674870  \n",
       "411                         Economics Bulletin         15452921  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# double check missing pages - these are indeed scopus pages without page nrs\n",
    "import numpy as np\n",
    "replications[replications['Replication page count'].isna()]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "0afd48e6-22f5-45e3-bac0-180eb7f2cd79",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# check here too whether there are no missing replications - there are none\n",
    "len(replications[replications['Replication Cite no.'].isna()])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "1c06c929-4a4c-4935-afe1-9ff25a034e09",
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "# add nr of coauthors\n",
    "originals['nr authors']=pd.DataFrame(originals['Original authors ID'].to_list()).T.count()\n",
    "replications['nr authors']=pd.DataFrame(replications['Replication authors ID'].to_list()).T.count()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "1318f11e-7825-4fe2-b88c-6b5876d597c6",
   "metadata": {},
   "outputs": [],
   "source": [
    "# save all so far - this has all info for standard way of computing the citation penalty\n",
    "import pandas as pd\n",
    "replications.to_pickle('replications')\n",
    "originals.to_pickle('originals')\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "dcda7e31-684f-4193-8e77-5d126d140c9d",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "\n",
    "replications=pd.read_pickle('replications')\n",
    "originals=pd.read_pickle('originals')\n",
    "#replications.to_csv('replications428.csv')\n",
    "#originals.to_csv('originals428.csv')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "d3e9c7f7-f7c8-4d24-9ddd-eb9f20a86de3",
   "metadata": {},
   "outputs": [],
   "source": [
    "# SOME ANALYSIS OF WHERE THE REPLICATIONS ARE PUBLISHED"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "ac8cdc5e-4590-4b9a-af9a-b09c7b451a5c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.4439252336448598"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# are they published in the same journal? based on source id\n",
    "# 44% of replications are published in same journal as original\n",
    "np.sum(originals['Original Publication ID']==replications['Publication ID'])/428"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "c5514283-dbd5-427d-86fc-9c7cb86cf9d5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# add journal citation measures to see quality of journals where replications are published\n",
    "import pybliometrics\n",
    "from pybliometrics.scopus import SerialTitle\n",
    "originaljournalSJR=[]\n",
    "originaljournalSNIP=[]\n",
    "replicationjournalSJR=[]\n",
    "replicationjournalSNIP=[]\n",
    "for i in range(0,len(replications)):\n",
    "    try:\n",
    "        # .split()[0] because sometimes print AND online are given - they have the same stats so we always take first\n",
    "        sourcea = SerialTitle(replications['Replication ISSN'].loc[i].split()[0])\n",
    "        sourceb = SerialTitle(originals['Original ISSN'].loc[i].split()[0])\n",
    "        # to break if either of them doesn worj\n",
    "        sourcea.sjrlist[0][1]\n",
    "        sourceb.sjrlist[0][1]\n",
    "        replicationjournalSJR+=[sourcea.sjrlist[0][1]]\n",
    "        replicationjournalSNIP+=[sourcea.sniplist[0][1]]\n",
    "        originaljournalSJR+=[sourceb.sjrlist[0][1]]\n",
    "        originaljournalSNIP+=[sourceb.sniplist[0][1]]\n",
    "    except:\n",
    "        originaljournalSJR+=[None]\n",
    "        originaljournalSNIP+=[None]\n",
    "        replicationjournalSJR+=[None]\n",
    "        replicationjournalSNIP+=[None]\n",
    "        \n",
    "originals['journal SJR']=originaljournalSJR\n",
    "originals['journal SNIP']=originaljournalSNIP\n",
    "replications['journal SJR']=replicationjournalSJR\n",
    "replications['journal SNIP']=replicationjournalSNIP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "bfbee556-f1f2-4b41-bee7-1c11521b0a01",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "count    408.000000\n",
      "mean       6.382740\n",
      "std        7.991009\n",
      "min        0.189000\n",
      "25%        1.159000\n",
      "50%        2.130000\n",
      "75%        8.337000\n",
      "max       30.448000\n",
      "Name: journal SJR, dtype: float64\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "count    408.000000\n",
       "mean      12.016789\n",
       "std       10.020825\n",
       "min        0.189000\n",
       "25%        2.170750\n",
       "50%        8.337000\n",
       "75%       22.344000\n",
       "max       30.448000\n",
       "Name: journal SJR, dtype: float64"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# comparing SCImago Journal Rank - a weighted and normalized citation measure [https://www.scimagojr.com/journalrank.php.]\n",
    "# computed for journals for which these are available for both replication and original journal\n",
    "print(replications['journal SJR'].describe())\n",
    "originals['journal SJR'].describe()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "3e344dfb-bf4b-46a6-8c02-bebf63094a75",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "count    408.000000\n",
      "mean       2.870150\n",
      "std        2.304756\n",
      "min        0.343000\n",
      "25%        1.424000\n",
      "50%        1.699000\n",
      "75%        4.115000\n",
      "max        9.636000\n",
      "Name: journal SNIP, dtype: float64\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "count    408.000000\n",
       "mean       4.692417\n",
       "std        3.253274\n",
       "min        0.575000\n",
       "25%        1.743000\n",
       "50%        4.115000\n",
       "75%        7.493000\n",
       "max       23.150000\n",
       "Name: journal SNIP, dtype: float64"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# comparing the Source-Normalized Impact per Paper (SNIP) [ https://blog.scopus.com/posts/journal-metrics-in-scopus-source-normalized-impact-per-paper-snip.]\n",
    "# computed for journals for which these are available\n",
    "print(replications['journal SNIP'].describe())\n",
    "originals['journal SNIP'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "4f065b95-e34d-49da-8925-4aac59958002",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_b1ecc caption {\n",
       "  text-align: center;\n",
       "  font-size: 150%;\n",
       "  color: blue;\n",
       "}\n",
       "#T_b1ecc td {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_b1ecc th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_b1ecc .true {\n",
       "  border-right: solid;\n",
       "  border-color: blue;\n",
       "  vertical-align: top;\n",
       "}\n",
       "#T_b1ecc_row0_col0, #T_b1ecc_row0_col1, #T_b1ecc_row0_col2, #T_b1ecc_row0_col3, #T_b1ecc_row1_col0, #T_b1ecc_row1_col1, #T_b1ecc_row1_col2, #T_b1ecc_row1_col3, #T_b1ecc_row2_col0, #T_b1ecc_row2_col1, #T_b1ecc_row2_col2, #T_b1ecc_row2_col3, #T_b1ecc_row3_col0, #T_b1ecc_row3_col1, #T_b1ecc_row3_col2, #T_b1ecc_row3_col3, #T_b1ecc_row4_col0, #T_b1ecc_row4_col1, #T_b1ecc_row4_col2, #T_b1ecc_row4_col3, #T_b1ecc_row5_col0, #T_b1ecc_row5_col1, #T_b1ecc_row5_col2, #T_b1ecc_row5_col3, #T_b1ecc_row6_col0, #T_b1ecc_row6_col1, #T_b1ecc_row6_col2, #T_b1ecc_row6_col3 {\n",
       "  width: 500px;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_b1ecc\">\n",
       "  <caption>Table A1: Comparing Impact of Journals where Replications and Originals are Published</caption>\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_b1ecc_level0_col0\" class=\"col_heading level0 col0\" >(I) Replications SJR</th>\n",
       "      <th id=\"T_b1ecc_level0_col1\" class=\"col_heading level0 col1\" >(II) Originals SJR</th>\n",
       "      <th id=\"T_b1ecc_level0_col2\" class=\"col_heading level0 col2\" >(III) Replications SNIP</th>\n",
       "      <th id=\"T_b1ecc_level0_col3\" class=\"col_heading level0 col3\" >(IV) Originals SNIP</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_b1ecc_level0_row0\" class=\"row_heading level0 row0\" >Mean</th>\n",
       "      <td id=\"T_b1ecc_row0_col0\" class=\"data row0 col0\" >6.38</td>\n",
       "      <td id=\"T_b1ecc_row0_col1\" class=\"data row0 col1\" >12.02</td>\n",
       "      <td id=\"T_b1ecc_row0_col2\" class=\"data row0 col2\" >2.87</td>\n",
       "      <td id=\"T_b1ecc_row0_col3\" class=\"data row0 col3\" >4.69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_b1ecc_level0_row1\" class=\"row_heading level0 row1\" >Median</th>\n",
       "      <td id=\"T_b1ecc_row1_col0\" class=\"data row1 col0\" >2.13</td>\n",
       "      <td id=\"T_b1ecc_row1_col1\" class=\"data row1 col1\" >8.34</td>\n",
       "      <td id=\"T_b1ecc_row1_col2\" class=\"data row1 col2\" >1.70</td>\n",
       "      <td id=\"T_b1ecc_row1_col3\" class=\"data row1 col3\" >4.12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_b1ecc_level0_row2\" class=\"row_heading level0 row2\" >Min</th>\n",
       "      <td id=\"T_b1ecc_row2_col0\" class=\"data row2 col0\" >0.19</td>\n",
       "      <td id=\"T_b1ecc_row2_col1\" class=\"data row2 col1\" >0.19</td>\n",
       "      <td id=\"T_b1ecc_row2_col2\" class=\"data row2 col2\" >0.34</td>\n",
       "      <td id=\"T_b1ecc_row2_col3\" class=\"data row2 col3\" >0.57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_b1ecc_level0_row3\" class=\"row_heading level0 row3\" >Q.1</th>\n",
       "      <td id=\"T_b1ecc_row3_col0\" class=\"data row3 col0\" >1.16</td>\n",
       "      <td id=\"T_b1ecc_row3_col1\" class=\"data row3 col1\" >2.17</td>\n",
       "      <td id=\"T_b1ecc_row3_col2\" class=\"data row3 col2\" >1.42</td>\n",
       "      <td id=\"T_b1ecc_row3_col3\" class=\"data row3 col3\" >1.74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_b1ecc_level0_row4\" class=\"row_heading level0 row4\" >Q.3</th>\n",
       "      <td id=\"T_b1ecc_row4_col0\" class=\"data row4 col0\" >8.34</td>\n",
       "      <td id=\"T_b1ecc_row4_col1\" class=\"data row4 col1\" >22.34</td>\n",
       "      <td id=\"T_b1ecc_row4_col2\" class=\"data row4 col2\" >4.12</td>\n",
       "      <td id=\"T_b1ecc_row4_col3\" class=\"data row4 col3\" >7.49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_b1ecc_level0_row5\" class=\"row_heading level0 row5\" >Max</th>\n",
       "      <td id=\"T_b1ecc_row5_col0\" class=\"data row5 col0\" >30.45</td>\n",
       "      <td id=\"T_b1ecc_row5_col1\" class=\"data row5 col1\" >30.45</td>\n",
       "      <td id=\"T_b1ecc_row5_col2\" class=\"data row5 col2\" >9.64</td>\n",
       "      <td id=\"T_b1ecc_row5_col3\" class=\"data row5 col3\" >23.15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_b1ecc_level0_row6\" class=\"row_heading level0 row6\" ># Obs.</th>\n",
       "      <td id=\"T_b1ecc_row6_col0\" class=\"data row6 col0\" >408</td>\n",
       "      <td id=\"T_b1ecc_row6_col1\" class=\"data row6 col1\" >408</td>\n",
       "      <td id=\"T_b1ecc_row6_col2\" class=\"data row6 col2\" >408</td>\n",
       "      <td id=\"T_b1ecc_row6_col3\" class=\"data row6 col3\" >408</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7f4c70060340>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Notes: SJR: Scimago Journal Rank, SNIP:Source-Normalized Impact per Paper -  for both, higher numbers mean more impact. Impact measured in the latest year available. 44% of replications were published in the journal were the original was published. Pairs were only included if the impact measure was available for both the original journal and the replication journal.\n"
     ]
    }
   ],
   "source": [
    "# table for footnote about the journals in which replications/originals get published (footnote 3)\n",
    "styles = [{'selector': 'caption', 'props': 'text-align: center; font-size: 150%; color: blue'},\n",
    "        {'selector': 'td', 'props': 'text-align: center;'},\n",
    "         {'selector': 'th', 'props': 'text-align: center;'},  \n",
    "         {'selector': '.true', 'props': 'border-right:solid; border-color:blue; vertical-align:top'}]\n",
    "\n",
    "cols = [\"(I) Replications SJR\", \"(II) Originals SJR\", \"(III) Replications SNIP\", \"(IV) Originals SNIP\"]\n",
    "summarydf = pd.DataFrame(columns=cols)\n",
    "summarydf[\"(I) Replications SJR\"] = replications['journal SJR'].describe()\n",
    "summarydf[\"(II) Originals SJR\"] = originals['journal SJR'].describe()\n",
    "summarydf[\"(III) Replications SNIP\"] = replications['journal SNIP'].describe()\n",
    "summarydf[\"(IV) Originals SNIP\"] = originals['journal SNIP'].describe()\n",
    "\n",
    "\n",
    "a=summarydf.T[['mean','50%','min',\t'25%'\t,'75%',\t'max','count']]\n",
    "a=a.round(2)\n",
    "a['count']=a['count'].apply(lambda x: f'{x:.0f}')\n",
    "a=a.rename(columns={'50%': 'Median', 'mean': 'Mean', '25%': 'Q.1', '75%': 'Q.3', 'max': 'Max', 'min': 'Min', 'count': '# Obs.'})\n",
    "display(a.T.style.set_caption(\"Table A1: Comparing Impact of Journals where Replications and Originals are Published\").format(precision=2).set_table_styles(styles).set_properties(**{'width': '500px'}))\n",
    "print('Notes: SJR: Scimago Journal Rank, SNIP:Source-Normalized Impact per Paper -  for both, higher numbers mean more impact. Impact measured in the latest year available. 44% of replications were published in the journal were the original was published. Pairs were only included if the impact measure was available for both the original journal and the replication journal.')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "c9a13093-866b-4b07-a4f5-bea24f650120",
   "metadata": {},
   "outputs": [],
   "source": [
    "# END GENERAL DATA PREP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "52efd23c-89f4-4975-8c54-68481733db9a",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Q1: traditional way"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "bdb62623-e8fe-4b18-9358-b8fbb9f4bb61",
   "metadata": {},
   "outputs": [],
   "source": [
    "# put together the replication cites and the original after citation cites to compare them\n",
    "# we exclude those pairs for which one is missing\n",
    "# note here we look at citations per year - for the ratio, we do not divide by year as both sides are divided by the same year so irrelevant\n",
    "import numpy as np\n",
    "replcites3 = pd.DataFrame()\n",
    "replcites3['EID replication'] = replications['EID replication']\n",
    "replcites3['Replication Cite no.'] = replications['Replication Cite no.']/(2025-replications['Replication Year'])\n",
    "replcites3['Original cites after replication'] = originals['Original cites after replication']/(2025-replications['Replication Year'])\n",
    "\n",
    "replcites3 = replcites3.dropna()\n",
    "replcites3 = replcites3.reset_index(drop=True)\n",
    "# since there are no originals with 0 citations after the replication we can look at ratio\n",
    "replcites3['Ratio Standard Counterfactual']=replcites3['Replication Cite no.']/replcites3['Original cites after replication']\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "877f5e4a-ce81-40fc-85bc-119ed65b67d3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_feaf2 caption {\n",
       "  text-align: center;\n",
       "  font-size: 150%;\n",
       "  color: blue;\n",
       "}\n",
       "#T_feaf2 td {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_feaf2 th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_feaf2 .true {\n",
       "  border-right: solid;\n",
       "  border-color: blue;\n",
       "  vertical-align: top;\n",
       "}\n",
       "#T_feaf2_row0_col0, #T_feaf2_row0_col1, #T_feaf2_row0_col2, #T_feaf2_row1_col0, #T_feaf2_row1_col1, #T_feaf2_row1_col2, #T_feaf2_row2_col0, #T_feaf2_row2_col1, #T_feaf2_row2_col2, #T_feaf2_row3_col0, #T_feaf2_row3_col1, #T_feaf2_row3_col2, #T_feaf2_row4_col0, #T_feaf2_row4_col1, #T_feaf2_row4_col2, #T_feaf2_row5_col0, #T_feaf2_row5_col1, #T_feaf2_row5_col2, #T_feaf2_row6_col0, #T_feaf2_row6_col1, #T_feaf2_row6_col2 {\n",
       "  width: 500px;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_feaf2\">\n",
       "  <caption>Table 2: Comparing Citations of Replications and Originals, Using the Traditional Counterfactual</caption>\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_feaf2_level0_col0\" class=\"col_heading level0 col0\" > (I) Replication citations</th>\n",
       "      <th id=\"T_feaf2_level0_col1\" class=\"col_heading level0 col1\" >(II) Original citations</th>\n",
       "      <th id=\"T_feaf2_level0_col2\" class=\"col_heading level0 col2\" >(III) Ratio</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_feaf2_level0_row0\" class=\"row_heading level0 row0\" >Mean</th>\n",
       "      <td id=\"T_feaf2_row0_col0\" class=\"data row0 col0\" >3.19</td>\n",
       "      <td id=\"T_feaf2_row0_col1\" class=\"data row0 col1\" >35.11</td>\n",
       "      <td id=\"T_feaf2_row0_col2\" class=\"data row0 col2\" >0.35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_feaf2_level0_row1\" class=\"row_heading level0 row1\" >Median</th>\n",
       "      <td id=\"T_feaf2_row1_col0\" class=\"data row1 col0\" >1.38</td>\n",
       "      <td id=\"T_feaf2_row1_col1\" class=\"data row1 col1\" >13.69</td>\n",
       "      <td id=\"T_feaf2_row1_col2\" class=\"data row1 col2\" >0.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_feaf2_level0_row2\" class=\"row_heading level0 row2\" >Min</th>\n",
       "      <td id=\"T_feaf2_row2_col0\" class=\"data row2 col0\" >0.00</td>\n",
       "      <td id=\"T_feaf2_row2_col1\" class=\"data row2 col1\" >0.02</td>\n",
       "      <td id=\"T_feaf2_row2_col2\" class=\"data row2 col2\" >0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_feaf2_level0_row3\" class=\"row_heading level0 row3\" >Q.1</th>\n",
       "      <td id=\"T_feaf2_row3_col0\" class=\"data row3 col0\" >0.56</td>\n",
       "      <td id=\"T_feaf2_row3_col1\" class=\"data row3 col1\" >5.98</td>\n",
       "      <td id=\"T_feaf2_row3_col2\" class=\"data row3 col2\" >0.04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_feaf2_level0_row4\" class=\"row_heading level0 row4\" >Q.3</th>\n",
       "      <td id=\"T_feaf2_row4_col0\" class=\"data row4 col0\" >3.34</td>\n",
       "      <td id=\"T_feaf2_row4_col1\" class=\"data row4 col1\" >33.81</td>\n",
       "      <td id=\"T_feaf2_row4_col2\" class=\"data row4 col2\" >0.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_feaf2_level0_row5\" class=\"row_heading level0 row5\" >Max</th>\n",
       "      <td id=\"T_feaf2_row5_col0\" class=\"data row5 col0\" >79.42</td>\n",
       "      <td id=\"T_feaf2_row5_col1\" class=\"data row5 col1\" >681.00</td>\n",
       "      <td id=\"T_feaf2_row5_col2\" class=\"data row5 col2\" >65.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_feaf2_level0_row6\" class=\"row_heading level0 row6\" ># Obs.</th>\n",
       "      <td id=\"T_feaf2_row6_col0\" class=\"data row6 col0\" >428</td>\n",
       "      <td id=\"T_feaf2_row6_col1\" class=\"data row6 col1\" >428</td>\n",
       "      <td id=\"T_feaf2_row6_col2\" class=\"data row6 col2\" >428</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7f4c34929fa0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Notes: this table is based on 428 pairs of replication papers and the papers they replicated. It compares citations of replications and citations of \n",
      "the papers they replicated, since the time the replication was published. Q1 and Q3 are the first and third quartile.\n"
     ]
    }
   ],
   "source": [
    "# we make a nice table \n",
    "styles = [{'selector': 'caption', 'props': 'text-align: center; font-size: 150%; color: blue'},\n",
    "        {'selector': 'td', 'props': 'text-align: center;'},\n",
    "         {'selector': 'th', 'props': 'text-align: center;'},  \n",
    "         {'selector': '.true', 'props': 'border-right:solid; border-color:blue; vertical-align:top'}]\n",
    "\n",
    "summarydf = pd.DataFrame()\n",
    "summarydf[\" (I) Replication citations\"] = replcites3['Replication Cite no.'].describe()\n",
    "summarydf[\"(II) Original citations\"] = replcites3['Original cites after replication'].describe()\n",
    "summarydf[\"(III) Ratio\"] = replcites3['Ratio Standard Counterfactual'].describe()\n",
    "\n",
    "a=summarydf.T[['mean','50%','min',\t'25%'\t,'75%',\t'max','count']]\n",
    "a=a.round(2)\n",
    "a['count']=a['count'].apply(lambda x: f'{x:.0f}')\n",
    "a=a.rename(columns={'50%': 'Median', 'mean': 'Mean', '25%': 'Q.1', '75%': 'Q.3', 'max': 'Max', 'min': 'Min', 'count': '# Obs.'})\n",
    "display(a.T.style.set_caption(\"Table 2: Comparing Citations of Replications and Originals, Using the Traditional Counterfactual\").format(precision=2).set_table_styles(styles).set_properties(**{'width': '500px'}))\n",
    "print('Notes: this table is based on 428 pairs of replication papers and the papers they replicated. It compares citations of replications and citations of \\nthe papers they replicated, since the time the replication was published. Q1 and Q3 are the first and third quartile.')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "id": "e8fb0581-a55e-4603-a0ca-beb7ff2356a5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>EID replication</th>\n",
       "      <th>replication</th>\n",
       "      <th>Confirmed (1,0)</th>\n",
       "      <th>Disconfirmed (1,0)</th>\n",
       "      <th>Mixed/Unclear (1,0)</th>\n",
       "      <th>Replication Cite no.</th>\n",
       "      <th>Replication Year</th>\n",
       "      <th>Replication authors ID</th>\n",
       "      <th>Replication authors Name</th>\n",
       "      <th>Replication page count</th>\n",
       "      <th>...</th>\n",
       "      <th>Average citations of papers in same volume</th>\n",
       "      <th>Median citations of papers in same volume</th>\n",
       "      <th>Average pages of papers in same volume</th>\n",
       "      <th>Median pages of papers in same volume</th>\n",
       "      <th>Average citations of papers in same volume (with pages only)</th>\n",
       "      <th>Median citations of papers in same volume (with pages only)</th>\n",
       "      <th>Average nr authors of papers in same volume</th>\n",
       "      <th>Median nr authors of papers in same volume</th>\n",
       "      <th>Average ratio in same volume</th>\n",
       "      <th>Median ratio in same volume</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>102</th>\n",
       "      <td>2-s2.0-85108916269</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2021</td>\n",
       "      <td>[55761353100, 57225008337]</td>\n",
       "      <td>[Choi J.J., Zhao K.]</td>\n",
       "      <td>8.0</td>\n",
       "      <td>...</td>\n",
       "      <td>11.25</td>\n",
       "      <td>11.0</td>\n",
       "      <td>48.25</td>\n",
       "      <td>50.0</td>\n",
       "      <td>11.25</td>\n",
       "      <td>11.0</td>\n",
       "      <td>2.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>0.228414</td>\n",
       "      <td>0.252217</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1 rows × 53 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        EID replication  replication  Confirmed (1,0)  Disconfirmed (1,0)  \\\n",
       "102  2-s2.0-85108916269          NaN                0                   1   \n",
       "\n",
       "     Mixed/Unclear (1,0)  Replication Cite no.  Replication Year  \\\n",
       "102                    0                   4.0              2021   \n",
       "\n",
       "         Replication authors ID Replication authors Name  \\\n",
       "102  [55761353100, 57225008337]     [Choi J.J., Zhao K.]   \n",
       "\n",
       "     Replication page count  ... Average citations of papers in same volume  \\\n",
       "102                     8.0  ...                                      11.25   \n",
       "\n",
       "    Median citations of papers in same volume  \\\n",
       "102                                      11.0   \n",
       "\n",
       "    Average pages of papers in same volume  \\\n",
       "102                                  48.25   \n",
       "\n",
       "    Median pages of papers in same volume  \\\n",
       "102                                  50.0   \n",
       "\n",
       "    Average citations of papers in same volume (with pages only)  \\\n",
       "102                                              11.25             \n",
       "\n",
       "     Median citations of papers in same volume (with pages only)  \\\n",
       "102                                               11.0             \n",
       "\n",
       "    Average nr authors of papers in same volume  \\\n",
       "102                                         2.5   \n",
       "\n",
       "    Median nr authors of papers in same volume Average ratio in same volume  \\\n",
       "102                                        2.5                     0.228414   \n",
       "\n",
       "     Median ratio in same volume  \n",
       "102                     0.252217  \n",
       "\n",
       "[1 rows x 53 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>EID original</th>\n",
       "      <th>original</th>\n",
       "      <th>Original Cite no.</th>\n",
       "      <th>Original Year</th>\n",
       "      <th>Original authors ID</th>\n",
       "      <th>Original authors Name</th>\n",
       "      <th>Original page count</th>\n",
       "      <th>Original Journal Name</th>\n",
       "      <th>Original Publication ID</th>\n",
       "      <th>Original ISSN</th>\n",
       "      <th>Original Scopus ID</th>\n",
       "      <th>Original cites after replication</th>\n",
       "      <th>nr authors</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>102</th>\n",
       "      <td>2-s2.0-0002624840</td>\n",
       "      <td>NaN</td>\n",
       "      <td>8321.0</td>\n",
       "      <td>1997</td>\n",
       "      <td>[6603348743]</td>\n",
       "      <td>[Carhart M.M.]</td>\n",
       "      <td>26.0</td>\n",
       "      <td>Journal of Finance</td>\n",
       "      <td>17500</td>\n",
       "      <td>00221082</td>\n",
       "      <td>0002624840</td>\n",
       "      <td>2724</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          EID original  original  Original Cite no.  Original Year  \\\n",
       "102  2-s2.0-0002624840       NaN             8321.0           1997   \n",
       "\n",
       "    Original authors ID Original authors Name  Original page count  \\\n",
       "102        [6603348743]        [Carhart M.M.]                 26.0   \n",
       "\n",
       "    Original Journal Name Original Publication ID Original ISSN  \\\n",
       "102    Journal of Finance                   17500      00221082   \n",
       "\n",
       "    Original Scopus ID  Original cites after replication  nr authors  \n",
       "102         0002624840                              2724           1  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#examples - high citations of original versus replication\n",
    "display(replications[replcites3['Original cites after replication']>650]) # choi/zhao\n",
    "display(originals[replcites3['Original cites after replication']>650]) # carhart"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "id": "0a93f57a-655a-4c1c-9918-0baf18d36489",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>EID original</th>\n",
       "      <th>original</th>\n",
       "      <th>Original Cite no.</th>\n",
       "      <th>Original Year</th>\n",
       "      <th>Original authors ID</th>\n",
       "      <th>Original authors Name</th>\n",
       "      <th>Original page count</th>\n",
       "      <th>Original Journal Name</th>\n",
       "      <th>Original Publication ID</th>\n",
       "      <th>Original ISSN</th>\n",
       "      <th>Original Scopus ID</th>\n",
       "      <th>Original cites after replication</th>\n",
       "      <th>nr authors</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>102</th>\n",
       "      <td>2-s2.0-0002624840</td>\n",
       "      <td>NaN</td>\n",
       "      <td>8321.0</td>\n",
       "      <td>1997</td>\n",
       "      <td>[6603348743]</td>\n",
       "      <td>[Carhart M.M.]</td>\n",
       "      <td>26.0</td>\n",
       "      <td>Journal of Finance</td>\n",
       "      <td>17500</td>\n",
       "      <td>00221082</td>\n",
       "      <td>0002624840</td>\n",
       "      <td>2724</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          EID original  original  Original Cite no.  Original Year  \\\n",
       "102  2-s2.0-0002624840       NaN             8321.0           1997   \n",
       "\n",
       "    Original authors ID Original authors Name  Original page count  \\\n",
       "102        [6603348743]        [Carhart M.M.]                 26.0   \n",
       "\n",
       "    Original Journal Name Original Publication ID Original ISSN  \\\n",
       "102    Journal of Finance                   17500      00221082   \n",
       "\n",
       "    Original Scopus ID  Original cites after replication  nr authors  \n",
       "102         0002624840                              2724           1  "
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "id": "95fbf32e-6a71-4c47-99d8-632c9d407ae2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>EID replication</th>\n",
       "      <th>replication</th>\n",
       "      <th>Confirmed (1,0)</th>\n",
       "      <th>Disconfirmed (1,0)</th>\n",
       "      <th>Mixed/Unclear (1,0)</th>\n",
       "      <th>Replication Cite no.</th>\n",
       "      <th>Replication Year</th>\n",
       "      <th>Replication authors ID</th>\n",
       "      <th>Replication authors Name</th>\n",
       "      <th>Replication page count</th>\n",
       "      <th>...</th>\n",
       "      <th>Average citations of papers in same volume</th>\n",
       "      <th>Median citations of papers in same volume</th>\n",
       "      <th>Average pages of papers in same volume</th>\n",
       "      <th>Median pages of papers in same volume</th>\n",
       "      <th>Average citations of papers in same volume (with pages only)</th>\n",
       "      <th>Median citations of papers in same volume (with pages only)</th>\n",
       "      <th>Average nr authors of papers in same volume</th>\n",
       "      <th>Median nr authors of papers in same volume</th>\n",
       "      <th>Average ratio in same volume</th>\n",
       "      <th>Median ratio in same volume</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>301</th>\n",
       "      <td>2-s2.0-33645947956</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1509.0</td>\n",
       "      <td>2006</td>\n",
       "      <td>[55970407600, 55951993800, 6603881325]</td>\n",
       "      <td>[Mehlum H., Moene K., Torvik R.]</td>\n",
       "      <td>20.0</td>\n",
       "      <td>...</td>\n",
       "      <td>51.571429</td>\n",
       "      <td>31.5</td>\n",
       "      <td>23.857143</td>\n",
       "      <td>23.5</td>\n",
       "      <td>51.571429</td>\n",
       "      <td>31.5</td>\n",
       "      <td>2.142857</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2.113507</td>\n",
       "      <td>1.392081</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1 rows × 53 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        EID replication  replication  Confirmed (1,0)  Disconfirmed (1,0)  \\\n",
       "301  2-s2.0-33645947956          NaN                0                   1   \n",
       "\n",
       "     Mixed/Unclear (1,0)  Replication Cite no.  Replication Year  \\\n",
       "301                    0                1509.0              2006   \n",
       "\n",
       "                     Replication authors ID          Replication authors Name  \\\n",
       "301  [55970407600, 55951993800, 6603881325]  [Mehlum H., Moene K., Torvik R.]   \n",
       "\n",
       "     Replication page count  ... Average citations of papers in same volume  \\\n",
       "301                    20.0  ...                                  51.571429   \n",
       "\n",
       "    Median citations of papers in same volume  \\\n",
       "301                                      31.5   \n",
       "\n",
       "    Average pages of papers in same volume  \\\n",
       "301                              23.857143   \n",
       "\n",
       "    Median pages of papers in same volume  \\\n",
       "301                                  23.5   \n",
       "\n",
       "    Average citations of papers in same volume (with pages only)  \\\n",
       "301                                          51.571429             \n",
       "\n",
       "     Median citations of papers in same volume (with pages only)  \\\n",
       "301                                               31.5             \n",
       "\n",
       "    Average nr authors of papers in same volume  \\\n",
       "301                                    2.142857   \n",
       "\n",
       "    Median nr authors of papers in same volume Average ratio in same volume  \\\n",
       "301                                        2.0                     2.113507   \n",
       "\n",
       "     Median ratio in same volume  \n",
       "301                     1.392081  \n",
       "\n",
       "[1 rows x 53 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>EID original</th>\n",
       "      <th>original</th>\n",
       "      <th>Original Cite no.</th>\n",
       "      <th>Original Year</th>\n",
       "      <th>Original authors ID</th>\n",
       "      <th>Original authors Name</th>\n",
       "      <th>Original page count</th>\n",
       "      <th>Original Journal Name</th>\n",
       "      <th>Original Publication ID</th>\n",
       "      <th>Original ISSN</th>\n",
       "      <th>Original Scopus ID</th>\n",
       "      <th>Original cites after replication</th>\n",
       "      <th>nr authors</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>301</th>\n",
       "      <td>2-s2.0-0031420541</td>\n",
       "      <td>NaN</td>\n",
       "      <td>752.0</td>\n",
       "      <td>1997</td>\n",
       "      <td>[7101926169, 7102974949]</td>\n",
       "      <td>[Sachs J.D., Warner A.M.]</td>\n",
       "      <td>42.0</td>\n",
       "      <td>Journal of African Economies</td>\n",
       "      <td>22733</td>\n",
       "      <td>09638024</td>\n",
       "      <td>0031420541</td>\n",
       "      <td>502</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          EID original  original  Original Cite no.  Original Year  \\\n",
       "301  2-s2.0-0031420541       NaN              752.0           1997   \n",
       "\n",
       "          Original authors ID      Original authors Name  Original page count  \\\n",
       "301  [7101926169, 7102974949]  [Sachs J.D., Warner A.M.]                 42.0   \n",
       "\n",
       "            Original Journal Name Original Publication ID Original ISSN  \\\n",
       "301  Journal of African Economies                   22733      09638024   \n",
       "\n",
       "    Original Scopus ID  Original cites after replication  nr authors  \n",
       "301         0031420541                               502           2  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#examples - high citations of original versus replication\n",
    "display(replications[replcites3['Replication Cite no.']>79]) # choi/zhao\n",
    "display(originals[replcites3['Replication Cite no.']>79]) # carhart"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b1f51952-a61c-41a2-9673-de58239a83df",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "435b786d-40bc-462c-9ceb-462dab5a2996",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKMAAAJOCAYAAABr8MR3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACSvElEQVR4nOzdd3hU1dr+8XtII51kIKTQpUpRAUXQIyC9CyIoooRiQ0ApIoglKE0QUOCAiBjQUCwHFQsoSLGACihSREWkZSQCQ0wnCcn8/vDHvE4gIWVq+H6ua65DZq+99z3B9/XxmbXWNlgsFosAAAAAAAAAJ6jg6gAAAAAAAAC4etCMAgAAAAAAgNPQjAIAAAAAAIDT0IwCAAAAAACA09CMAgAAAAAAgNPQjAIAAAAAAIDT0IwCAAAAAACA09CMAgAAAAAAgNPQjAIAAAAAAIDT0IwCYGPFihUyGAzWl7e3t6KionT33Xfr8OHDDr9/bGysatWqZfNerVq1FBsb67B7Ll68WCtWrLjk/WPHjslgMFz2mLN89dVXGjBggGJiYuTr66vQ0FC1adNGS5YsUUZGhnVcwd/Rn3/+qbi4OO3du9f5oQEAuMp9++23uuuuuxQVFSVfX19FRkaqf//+2rlzZ4muExcXJ4PBUKoM27Ztk8Fg0LZt20p1fnG1a9dO7dq1K9bY/Px8vfXWW+rYsaMqV64sHx8fRUREqGfPnvroo4+Un58v6fI12I4dOxQXF6e///7b/h8CgNPRjAJwWfHx8dq5c6c2b96sUaNGaf369br11luVnJzs9Czvv/++nnnmGYddv7BmVFRUlHbu3KkePXo47N5Fee6553TbbbfJZDLphRde0KZNm7R27Vp16NBBcXFxevrpp61jC/6O/vzzT02dOpVmFAAATrZw4ULdcsstSkxM1OzZs7V582a99NJLMplMuvXWW7Vo0aJiX2vEiBElbmBd1Lx5c+3cuVPNmzcv1fn2dv78eXXv3l1DhgxRRESElixZoi1btujVV19VdHS07rrrLn300UeSLl+D7dixQ1OnTqUZBZQT3q4OAMA9NWnSRC1btpT0zzdeeXl5eu655/TBBx9o6NChTs1yww03OPV+F/n5+enmm292yb3fffddPf/88xo+fLiWLVtm861ot27dNHHiRJvi1FW/IwAA8H+++eYbPf744+revbvef/99eXv/339u3X333erbt68ee+wx3XDDDbrlllsKvU5mZqYCAgJUrVo1VatWrVRZQkJCXFbHXM64ceP02WefaeXKlbr//vttjvXr109PPPGEsrKyJLm2BgPgHMyMAlAsFxtTf/31l837u3fvVu/evRUeHq6KFSvqhhtu0DvvvGMz5uLSv02bNmno0KEKDw9XYGCgevXqpT/++OOK977cMr2///5b48ePV506deTn56eIiAh1795dv/zyi3XM1KlT1apVK4WHhyskJETNmzfX8uXLZbFYbK598OBBbd++3bo08eIywcKW6X399dfq0KGDgoODFRAQoDZt2uiTTz657GfeunWrHnnkEVWuXFlGo1H9+vXTn3/+ecXP/PzzzyssLEwLFiy47PT84OBgde7c+bK/o23btunGG2+UJA0dOtT6ueLi4qzji/P3lpmZqQkTJqh27dqqWLGiwsPD1bJlS61Zs+aK+QEAuBrNnDlTBoNBS5YssWlESZK3t7cWL14sg8GgWbNmWd+/uBTvhx9+UP/+/RUWFqZrrrnG5ti/ZWdna/z48YqMjFRAQIBuu+027dmz55J66XLL9GJjYxUUFKTff/9d3bt3V1BQkKpXr67x48crOzvb5j7FqaOKKykpSa+//rq6dOlySSPqonr16qlZs2aSLq3B4uLi9MQTT0iSateuba1t/v3Z3n77bbVu3VqBgYEKCgpSly5d9OOPP9rc448//tDdd9+t6Oho+fn5qWrVqurQoQMzyQEXYGYUgGI5evSoJKl+/frW97Zu3aquXbuqVatWevXVVxUaGqq1a9dq4MCByszMvKSBNHz4cHXq1EmrV6/WyZMn9fTTT6tdu3bat2+fKlWqVOwsaWlpuvXWW3Xs2DE9+eSTatWqldLT0/Xll1/q1KlTatiwoaR/CpmHHnpINWrUkPTP/g2jR4+WyWTSs88+K+mf5W39+/dXaGioFi9eLOmfb+MKs337dnXq1EnNmjXT8uXL5efnp8WLF6tXr15as2aNBg4caDN+xIgR6tGjh/UzP/HEExo8eLC2bNlS6D1OnTqlAwcOaODAgQoICCj27+Wi5s2bKz4+XkOHDtXTTz9tneJ+8ZvV4v69jRs3Tm+99ZamTZumG264QRkZGTpw4IDMZnOJMwEAUN7l5eVp69atatmyZaGzmapXr64WLVpoy5YtysvLk5eXl/VYv379dPfdd+vhhx+22ReyoKFDh+rtt9/WxIkTdfvtt+vnn39W3759lZqaWqycubm56t27t4YPH67x48fryy+/1AsvvKDQ0FBrfSQVr44qrq1btyo3N1d33HFHic67aMSIETp37pwWLlyodevWKSoqSpJ07bXXSpJmzJihp59+2lr75OTkaM6cOfrPf/6j77//3jque/fuysvL0+zZs1WjRg2dPXtWO3bsYOkf4AoWAPiX+Ph4iyTLt99+a8nNzbWkpaVZNm7caImMjLTcdtttltzcXOvYhg0bWm644Qab9ywWi6Vnz56WqKgoS15ens01+/btazPum2++sUiyTJs2zfrekCFDLDVr1rQZV7NmTcuQIUOsPz///PMWSZZNmzYV+3Pl5eVZcnNzLc8//7zFaDRa8vPzrccaN25sadu27SXnHD161CLJEh8fb33v5ptvtkRERFjS0tKs7124cMHSpEkTS7Vq1azXvfiZR44caXPN2bNnWyRZTp06VWjWb7/91iLJMmnSpGJ/voK/o127dl2S/aLi/r01adLEcscddxQ7AwAAV7OkpCSLJMvdd99d5LiBAwdaJFn++usvi8VisTz33HMWSZZnn332krEXj1108OBBiyTLk08+aTNuzZo1Fkk2tcDWrVstkixbt261vjdkyBCLJMs777xjc3737t0tDRo0KDRzUXVU27ZtL1tH/dusWbMskiwbN24sctxFl6vB5syZY5FkOXr0qM3YEydOWLy9vS2jR4+2eT8tLc0SGRlpGTBggMVisVjOnj1rkWR5+eWXi5UBgGOxTA/AZd18883y8fFRcHCwunbtqrCwMH344YfWKee///67fvnlF917772SpAsXLlhf3bt316lTp/Trr7/aXPPi2IvatGmjmjVrauvWrSXKtmHDBtWvX18dO3YsctyWLVvUsWNHhYaGysvLSz4+Pnr22WdlNpt1+vTpEt1TkjIyMvTdd9+pf//+CgoKsr7v5eWl++67T4mJiZd85t69e9v8fHH6+fHjx0t8f3soyd/bTTfdpA0bNmjSpEnatm2bdR8HAABQepb/v8yt4PK7O++884rnbt++XZI0YMAAm/f79+9/ybLAwhgMBvXq1cvmvWbNml1Sm9i7jnKUzz77TBcuXND9999vU9dUrFhRbdu2tS7lCw8P1zXXXKM5c+Zo3rx5+vHHH61P7wPgfDSjAFzWm2++qV27dmnLli166KGHdOjQId1zzz3W4xf3jpowYYJ8fHxsXiNHjpQknT171uaakZGRl9wnMjKyxMu+zpw5c8XNPL///nvrnkrLli3TN998o127dmnKlCmSVKrGSnJysiwWi3Vq+L9FR0dL0iWfxWg02vx8cQlgUfe/OB3+4tJIeyrJ39uCBQv05JNP6oMPPlD79u0VHh6uO+64Q4cPH7Z7LgAAPF3lypUVEBBwxX9/Hzt2TAEBAQoPD7d5/3L1RUEX64yqVavavO/t7X1JzVGYgIAAVaxY0eY9Pz8/nT9/3vqzvesoZ9Q2N9544yW1zdtvv22tawwGg7744gt16dJFs2fPVvPmzVWlShWNGTNGaWlpds8FoGjsGQXgsho1amTdtLx9+/bKy8vT66+/rvfee0/9+/dX5cqVJUmTJ09Wv379LnuNBg0a2PyclJR0yZikpCTVrVu3RNmqVKmixMTEIsesXbtWPj4++vjjj20Krg8++KBE9/q3sLAwVahQQadOnbrk2MVNyS/+XsoiKipKTZs21eeff259mo69lOTvLTAwUFOnTtXUqVP1119/WWdJ9erVy2ajeAAA8M9M6fbt22vjxo1KTEy87BdniYmJ2rNnj7p162azX5R06Uypy7nYcPrrr78UExNjff/ChQt23dPR3nVU+/bt5ePjow8++EAPP/ywnVL+42Jt895776lmzZpFjq1Zs6aWL18uSfrtt9/0zjvvKC4uTjk5OXr11VftmgtA0ZgZBaBYZs+erbCwMD377LPKz89XgwYNVK9ePf30009q2bLlZV/BwcE211i1apXNzzt27NDx48fVrl27EmXp1q2bfvvttyI3ATcYDPL29rYp9LKysvTWW29dMtbPz69Y3/AFBgaqVatWWrdunc34/Px8JSQkqFq1ajYbvJfFM888o+TkZI0ZM+ayT61JT0/X559/Xuj5hc3AKs3fm/TPN7CxsbG655579OuvvyozM7OMnxAAgPJn8uTJslgsGjlypPLy8myO5eXl6ZFHHpHFYtHkyZNLdf3bbrtN0j9Pjvu39957TxcuXChd6MsoSR1VHJGRkRoxYoQ+++wzvfnmm5cdc+TIEe3bt6/QaxRW23Tp0kXe3t46cuRIobXN5dSvX19PP/20mjZtqh9++KFUnwtA6TEzCkCxhIWFafLkyZo4caJWr16twYMHa+nSperWrZu6dOmi2NhYxcTE6Ny5czp06JB++OEHvfvuuzbX2L17t0aMGKG77rpLJ0+e1JQpUxQTE2NdHlZcjz/+uN5++2316dNHkyZN0k033aSsrCxt375dPXv2VPv27dWjRw/NmzdPgwYN0oMPPiiz2ayXXnrpsk/Ka9q0qdauXau3335bderUUcWKFdW0adPL3nvmzJnq1KmT2rdvrwkTJsjX11eLFy/WgQMHtGbNmmJ9q1kcd911l5555hm98MIL+uWXXzR8+HBdc801yszM1HfffaelS5dq4MCB1in0BV1zzTXy9/fXqlWr1KhRIwUFBSk6OlrR0dHF/ntr1aqVevbsqWbNmiksLEyHDh3SW2+9pdatW9t1thYAAOXFLbfcopdfflmPP/64br31Vo0aNUo1atTQiRMn9N///lffffedXn75ZbVp06ZU12/cuLHuuecezZ07V15eXrr99tt18OBBzZ07V6GhoapQwT5zDUpSRxXXvHnz9Mcffyg2NlafffaZ+vbtq6pVq+rs2bPatGmT4uPjtXbtWuv+mgVdrM1eeeUVDRkyRD4+PmrQoIFq1aql559/XlOmTNEff/xh3ev0r7/+0vfff2+d6b1v3z6NGjVKd911l+rVqydfX19t2bJF+/bt06RJk0r9uQCUkku3Twfgdi4+BW7Xrl2XHMvKyrLUqFHDUq9ePcuFCxcsFovF8tNPP1kGDBhgiYiIsPj4+FgiIyMtt99+u+XVV1+95Jqff/655b777rNUqlTJ4u/vb+nevbvl8OHDNvcoztP0LBaLJTk52fLYY49ZatSoYfHx8bFERERYevToYfnll1+sY9544w1LgwYNLH5+fpY6depYZs6caVm+fPklT2I5duyYpXPnzpbg4GCLJOv9L/ckF4vFYvnqq68st99+uyUwMNDi7+9vufnmmy0fffRRsX6Pl3uyTVG2b99u6d+/vyUqKsri4+NjCQkJsbRu3doyZ84cS2pqapG/ozVr1lgaNmxo8fHxsUiyPPfcc9Zjxfl7mzRpkqVly5aWsLAw6+9w7NixlrNnzxYrOwAAV6udO3da+vfvb6latarF29vbEhERYenXr59lx44dl4y9+MS8M2fOFHrs386fP28ZN26cJSIiwlKxYkXLzTffbNm5c6clNDTUMnbsWOu4wp6mFxgYWKz7FLeOKs7T9C66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XlE1nMVi0ezZs1WnTh35+/vruuuu03vvvWe9X3Jysu69915VqVJF/v7+qlevnuLj44udtyzcbs8oAAA83R9//KGNGzfaLG1btmyZpkyZounTp+vQoUOaMWOGnnnmGevyvoueeOIJjR8/Xj/++KPatGmj3r17y2w2F+u+F5+u1qNHD/3444/64osv1LJlS+vxnJwcvfDCC/rpp5/0wQcf6OjRo9ZipXr16vrf//4nSfr111916tQpvfLKK5e9T2xsrHbv3q3169dr586dslgs6t69u82jfjMzM/XSSy/prbfe0pdffqkTJ05owoQJhWZftWqVgoKCNHLkyMsev9yU8wkTJmjAgAHWRtepU6fUpk0bZWZmqn379goKCtKXX36pr7/+2toQy8nJ0YULF3THHXeobdu22rdvn3bu3KkHH3yQJwsBAOCGzp07p88++0wjR468ZKZSZGSk7r33Xr399tuyWCzW9+fMmaMmTZpoz549euaZZy655rFjx9S/f3/dcccd2rt3rx566CGbhlZhjhw5og8++EAff/yxPv74Y23fvl2zZs2yHs/IyNC4ceO0a9cuffHFF6pQoYL69u2r/Pz8Yn3WvXv36uDBgxo/frwqVLi0XXO5eqioGu7pp59WfHy8lixZooMHD2rs2LEaPHiwtm/fLkl65pln9PPPP2vDhg06dOiQlixZUqKljGXh8qfpoWROnTqlvLw8eXl5WTcuBQC43scff6ygoCDl5eXp/PnzkqR58+ZZj7/wwguaO3eudaZS7dq19fPPP2vp0qXWWT+SNGrUKN15552SpCVLlmjjxo1avny5Jk6ceMUM06dP1913362pU6da37vuuuusfx42bJj1z3Xq1NGCBQt00003KT09XUFBQdbp7REREYXuN3D48GGtX79e33zzjXVz7FWrVql69er64IMPdNddd0mScnNz9eqrr+qaa66xfq7nn3++0OyHDx9WnTp1SrQ3VVBQkPz9/ZWdnW0zVT0hIUEVKlTQ66+/bm0wxcfHq1KlStq2bZtatmyplJQU9ezZ05qvUaNGxb4v3Bd1EgCUP4cPH5bFYin039WNGjVScnKyzpw5o4iICEnS7bffbvMl2L9nR0vSq6++qgYNGlif2tqgQQMdOHBA06dPLzJLfn6+VqxYYV0qf9999+mLL76wnnexhrto+fLlioiI0M8//6wmTZoU67NKUsOGDa849iIvL6/L1nAZGRmaN2+etmzZotatW0v6p/77+uuvtXTpUrVt21YnTpzQDTfcYP3yslatWsW+b1kxM8rD3HjjjapevbpuvPFGV0cBAPxL+/bttXfvXn333XcaPXq0unTpYt1o+8yZMzp58qSGDx9u3fMoKChI06ZNu2Tq9sViQZK8vb3VsmVLHTp0qFgZ9u7dqw4dOhR6/Mcff1SfPn1Us2ZNBQcHq127dpKkEydOFPtzHjp0SN7e3mrVqpX1PaPRqAYNGtjkDAgIsDZ6JCkqKsq6JPByLBaL3WYm7dmzR7///ruCg4Otv+vw8HCdP39eR44cUXh4uGJjY9WlSxf16tVLr7zySpFLCOE5qJMA4OpzcUbUv+uIf88Mv5xff/31kn9X3HTTTVe8V61atWz2bCxY3xw5ckSDBg1SnTp1FBISotq1a0sqfq11uc9SWj///LPOnz+vTp062dSfb775prX+fOSRR7R27Vpdf/31mjhxonbs2FHm+xYXzSgAAOwgMDBQdevWVbNmzbRgwQJlZ2dbZyhdnJq9bNky7d271/o6cOCAvv322yteu7gFSVGbbGZkZKhz584KCgpSQkKCdu3apffff1/SP8v3iuvfU+ALvv/vnAVnOBkMhkLPlaT69evryJEjNkv9Sis/P18tWrSw+V3v3btXv/32mwYNGiTpn5lSO3fuVJs2bfT222+rfv36xfq7AAAAzlW3bl0ZDAb9/PPPlz3+yy+/KCwszGZ5WWBgYJHXvNyXYEXVKRddrr759xK8Xr16yWw2a9myZfruu+/03XffSSp+rVW/fn1JKvYXkUW5mOuTTz6xqYd+/vln675R3bp10/Hjx/X444/rzz//VIcOHYrcVsGeaEa5gR49eqh///7q0aOHXccCAFznueee00svvaQ///xTVatWVUxMjP744w/VrVvX5nXxG7OL/t0QuXDhgvbs2VPsqdrNmjXTF198cdljv/zyi86ePatZs2bpP//5jxo2bHjJTCVfX19JUl5eXqH3uPbaa3XhwgVrcSVJZrNZv/32W5mWug0aNEjp6ek2m7r/28XNRAvy9fW9JG/z5s11+PBhRUREXPL7Dg0NtY674YYbNHnyZO3YsUNNmjTR6tWrS50f9lOWWoc6CQDKH6PRqE6dOmnx4sXKysqyOZaUlKRVq1Zp4MCBJZpN1LBhQ+3atcvmvd27d5cpp9ls1qFDh/T000+rQ4cO1uWDJXH99dfr2muv1dy5cy+7z1RR9ZBkW8Nde+218vPz04kTJy6ph/79kJMqVaooNjZWCQkJevnll/Xaa6+VKHNpsWeUG1i6dKlDxgIAXKddu3Zq3LixZsyYoUWLFikuLk5jxoxRSEiIunXrpuzsbO3evVvJyckaN26c9bz//ve/qlevnho1aqT58+crOTnZZq+nojz33HPq0KGDrrnmGt199926cOGCNmzYoIkTJ6pGjRry9fXVwoUL9fDDD+vAgQN64YUXbM6vWbOmDAaDPv74Y3Xv3l3+/v4KCgqyGVOvXj316dNHDzzwgJYuXarg4GBNmjRJMTEx6tOnT6l/X61atdLEiRM1fvx4mUwm9e3bV9HR0fr999/16quv6tZbb9Vjjz12yXm1atXSZ599pl9//VVGo1GhoaG69957NWfOHPXp00fPP/+8qlWrphMnTmjdunV64oknlJubq9dee029e/dWdHS0fv31V/3222+6//77S50f9lOWWoc6CQDKp0WLFqlNmzbq0qWLpk2bptq1a+vgwYN64oknFBMTc8W9ngp66KGHNG/ePD355JMaPny49u7dqxUrVkgq/RK5i0/wfe211xQVFaUTJ05o0qRJJbqGwWBQfHy8OnbsqNtuu01PPfWUGjZsqPT0dH300Uf6/PPPrZuP/9vlarjg4GBNmDBBY8eOVX5+vm699ValpqZqx44dCgoK0pAhQ/Tss8+qRYsWaty4sbKzs/Xxxx87bR9NZkYBAOAg48aN07Jly3Ty5EmNGDFCr7/+ulasWKGmTZuqbdu2WrFixSUzo2bNmqUXX3xR1113nb766it9+OGHxX6qSbt27fTuu+9q/fr1uv7663X77bdbZzBVqVJFK1as0Lvvvqtrr71Ws2bN0ksvvWRzfkxMjKZOnapJkyapatWqGjVq1GXvEx8frxYtWqhnz55q3bq1LBaLPv300xJtPn45L774olavXq3vvvtOXbp0UePGjTVu3Dg1a9bMZpP3f3vggQfUoEEDtWzZUlWqVNE333yjgIAAffnll6pRo4b69eunRo0aadiwYcrKylJISIgCAgL0yy+/6M4771T9+vX14IMPatSoUXrooYfKlB8AADhGvXr1tHv3bl1zzTUaOHCgrrnmGj344INq3769du7cad3Au7hq166t9957T+vWrVOzZs20ZMkS69P0/Pz8SpWxQoUKWrt2rfbs2aMmTZpo7Nix1g3SS+Kmm26yftYHHnhAjRo1Uu/evXXw4EG9/PLLlz2nsBruhRde0LPPPquZM2eqUaNG6tKliz766CNr/enr66vJkyerWbNmuu222+Tl5aW1a9eW6vOXlMFSnIWR5VxqaqpCQ0OVkpKikJAQh9xj48aNDrnuRV27dnXo9QHAGc6fP6+jR4+qdu3aqlixoqvjONWxY8dUu3Zt/fjjj7r++utdHQf/UtQ/l86oIZylPH0WAMDlXc211pVMnz5dr776qk6ePOnqKG7J3vUQy/QAAAAAAMBVZfHixbrxxhtlNBr1zTffaM6cOYXOCof90YxyA2PGjNG5c+cUHh6uBQsWFDl2+vTpSklJUWhoqHUaIQAAQHnRsmVLJSUlKTIyssSbyd511106c+aMqlSponfffddBCQEA5cHhw4c1bdo0nTt3TjVq1ND48eM1efJkV8e6atCMcgPnzp2T2Wwu1thDhw7JbDbLaDQ6OBUAwJlq1apVrEcKA+VdUlKSTCZTqc7duXOnTCaTYmJi7JwKAFDezJ8/X/Pnz3d1jKsWG5gDAAAAAADAaZgZ5WHeeOMNV0cAAABwS0eOHHF1BAAAUAw0ozyMr6+vqyMAAAC4pdI+jhsAADgXy/QAAAAAAADgNDSjAAAAAAAA4DQs0/MwW7duVXZ2tvz8/NS+fXtXxwEAAHAbq1evVmZmpgICAjRo0CBXxwEAAIWgGeVhli9fLrPZLKPRSDMKAADgXyZOnCiTyaSYmBiaUQAAuDGW6QEAUEaxsbEyGAx6+OGHLzk2cuRIGQwGxcbGOj9YMcTFxalhw4YKDAxUWFiYOnbsqO+++67Ic5YtW6b//Oc/CgsLs57z/fffOykxAAC42pT3Wqtdu3YyGAw2r7vvvrvI63755Zfq1auXoqOjZTAY9MEHHzjwU9gfM6PcwPDhw61L7+w5FgDgPNWrV9fatWs1f/58+fv7S5LOnz+vNWvWqEaNGi5OV7j69etr0aJFqlOnjrKysjR//nx17txZv//+u6pUqXLZc7Zt26Z77rlHbdq0UcWKFTV79mx17txZBw8eVExMjJM/Acqb2bNnW5faOfNcAIB7K++11gMPPKDnn3/e+vPFz1iYjIwMXXfddRo6dKjuvPNOh+V3FGZGuYH27dura9euxVp2V5KxAADnad68uWrUqKF169ZZ31u3bp2qV6+uG264wWasxWLR7NmzVadOHfn7++u6667Te++9Zz2el5en4cOHq3bt2vL391eDBg30yiuv2FwjNjZWd9xxh1566SVFRUXJaDTq0UcfVW5ubolyDxo0SB07dlSdOnXUuHFjzZs3T6mpqdq3b1+h56xatUojR47U9ddfr4YNG2rZsmXKz8/XF198UaJ7A5czaNAgjRgxolTL7MpyLgDAvZX3WisgIECRkZHWV2hoaJHX7datm6ZNm6Z+/fqVKI+7oBkFAICdDB06VPHx8daf33jjDQ0bNuyScU8//bTi4+O1ZMkSHTx4UGPHjtXgwYO1fft2SVJ+fr6qVaumd955Rz///LOeffZZPfXUU3rnnXdsrrN161YdOXJEW7du1cqVK7VixQqtWLHCejwuLk61atUqdv6cnBy99tprCg0N1XXXXVfs8zIzM5Wbm6vw8PBinwMAAFBS5bnWWrVqlSpXrqzGjRtrwoQJSktLK/Z1PRHNKACA25s3b56qVaumatWqadu2bTbHjh49aj02evToS87t3bu39XhBK1assB7797dspXXffffp66+/1rFjx3T8+HF98803Gjx4sM2YjIwMzZs3T2+88Ya6dOmiOnXqKDY2VoMHD9bSpUslST4+Ppo6dapuvPFG1a5dW/fee69iY2MvKZDCwsK0aNEiNWzYUD179lSPHj1sZidVrlxZ11xzzRVzf/zxxwoKClLFihU1f/58bdq0SZUrVy725540aZJiYmLUsWPHYp8DAADcB7WWa2ute++9V2vWrNG2bdv0zDPP6H//+5/HzngqLvaMcgOJiYnKy8uTl5fXZf8P+N9ycnKsf/b19XV0NABwC6mpqTKZTJKk7Oxsm2N5eXnWY8nJyZece+bMGevxgjIyMqzHMjMzy5yzcuXK6tGjh1auXCmLxaIePXpc0tT5+eefdf78eXXq1Mnm/ZycHJsp5q+++qpef/11HT9+XFlZWcrJydH1119vc07jxo3l5eVl/TkqKkr79++3/jxq1CiNGjXqirnbt2+vvXv36uzZs1q2bJkGDBig7777ThEREVc8d/bs2dbiqWLFilccD1zJr7/+qgsXLsjb21sNGjQo0bn//v8P7K8JAMVHreXaWuuBBx6wjm3SpInq1aunli1b6ocfflDz5s2v/IvxQDSj3MCkSZNkNptlNBqVkJBQ5Nhhw4YVeywAlBchISHWjbEL/geml5eX9VhYWNgl51apUqXQTbUDAwOtx+y14fGwYcOsRcl///vfS47n5+dLkj755JNLcl38bO+8847Gjh2ruXPnqnXr1goODtacOXMuefKKj4+Pzc8Gg8F6/ZIIDAxU3bp1VbduXd18882qV6+eli9frsmTJxd53ksvvaQZM2Zo8+bNatasWYnvC1xOhw4dZDKZFBMTo8TExBKde80115T6XAC4mlFruVet1bx5c/n4+Ojw4cM0owAAcJVx48Zp3Lhxlz1Wu3btIv+jc/369YUei42NtftjgLt27WqdxdqlS5dLjl977bXy8/PTiRMn1LZt28te46uvvlKbNm00cuRI63tHjhyxa86iWCyWS74VLWjOnDmaNm2aPvvsM7Vs2dJJyQAAgCNQa7lXrXXw4EHl5uYqKirKaZmcjWaUh2nUqJFSUlKuuLM+AMA1vLy8dOjQIeufCwoODtaECRM0duxY5efn69Zbb1Vqaqp27NihoKAgDRkyRHXr1tWbb76pzz77TLVr19Zbb72lXbt2qXbt2iXKsmjRIr3//vuFPuUuIyND06dPV+/evRUVFSWz2azFixcrMTFRd911l3Xc/fffr5iYGM2cOVPSP0vznnnmGa1evVq1atVSUlKSJCkoKEhBQUElygjYU+vWrXXmzBmbR2UDAMqX8lZrHTlyRKtWrVL37t1VuXJl/fzzzxo/frxuuOEG3XLLLdZrdejQQX379rXOCktPT9fvv/9uPX706FHt3btX4eHhqlGjRok+hyvQjPIwU6ZMcXUEAMAVhISEFHn8hRdeUEREhGbOnKk//vhDlSpVUvPmzfXUU09Jkh5++GHt3btXAwcOlMFg0D333KORI0dqw4YNJcpx9uzZIr/l8/Ly0i+//KKVK1fq7NmzMhqNuvHGG/XVV1+pcePG1nEnTpxQhQr/98yTxYsXKycnR/3797e53nPPPae4uLgSZQTs6d1333V1BACAE5SnWsvX11dffPGFXnnlFaWnp6t69erq0aOHnnvuOZtm25EjR3T27Fnrz7t371b79u2tP1+c2TZkyBCbJ/65K4PFYrG4OoSrpaamKjQ0VCkpKVf8h7q0Nm7cWOixwYMHl3kfqK5du5Y2GgC4jfPnz+vo0aOqXbs2m2HDbRT1z6UzaghncZfPUq1aNfZ9AgAHodZCadm7Hqpw5SEAAAAAAACAfdCMAgAAAAAAgNOwZ5SHWbBggdLS0hQcHKwxY8a4Og4AAIDbeOihh3Tu3DmFh4dr6dKlro4DAAAKQTPKw3z//ffW/aUAAADwfz755BPrflMAAMB9sUwPAAAAAAAATsPMKDewYMEC5eXl2Ty20R5jAQAA3ElRTxe+aPbs2dZapzjj/23Xrl3USQAAeACaUW4gPDzcIWMBAAA8TVlqnaioKDsmAQAAjsIyPQAAAAAAADgNzSgAAAAAAAA4Dc0oN/Dpp59q3bp1+vTTT684ds+ePfr222+1Z88eJyQDALiLbdu2yWAw6O+//5YkrVixQpUqVXJpJsARSlIXFfT5559r/fr1+vzzzx2QDABQnlFrORfNKDewevVqLVu2TKtXr77i2Pnz52vq1KmaP3++E5IBAIojNjZWBoNBDz/88CXHRo4cKYPBoNjYWLvec+DAgfrtt9/ses3imj59utq0aaOAgIBSFWkPPfSQDAaDXn75Zbtng+crSV1U0LBhw9SnTx8NGzbMAckAAK5CrWXLbDara9euio6Olp+fn6pXr65Ro0YpNTW10GseO3ZMBoPhsq93333XgZ/m8mhGAQBgB9WrV9fatWuVlZVlfe/8+fNas2aNatSoYff7+fv7KyIiwu7XLY6cnBzdddddeuSRR0p87gcffKDvvvtO0dHRDkgGAADKK2qt/1OhQgX16dNH69ev12+//aYVK1Zo8+bNl23WXVS9enWdOnXK5jV16lQFBgaqW7dujvoohaIZ5WEGDBig2NhYDRgwwNVRAAD/0rx5c9WoUUPr1q2zvrdu3TpVr15dN9xwg81Yi8Wi2bNnq06dOvL399d1112n9957z2bMp59+qvr168vf31/t27fXsWPHbI4XnDp+5MgR9enTR1WrVlVQUJBuvPFGbd682eacWrVqacaMGRo2bJiCg4NVo0YNvfbaayX+rFOnTtXYsWPVtGnTEp1nMpk0atQorVq1Sj4+PiW+L3AlkyZN0owZMzRp0iRXRwEA2Bm11v8JCwvTI488opYtW6pmzZrq0KGDRo4cqa+++qrQa3p5eSkyMtLm9f7772vgwIEKCgoqccayohnlYXr37q2BAweqd+/ero4CAChg6NChio+Pt/78xhtvXHa50NNPP634+HgtWbJEBw8e1NixYzV48GBt375dknTy5En169dP3bt31969ezVixIgr/sd1enq6unfvrs2bN+vHH39Uly5d1KtXL504ccJm3Ny5c9WyZUv9+OOPGjlypB555BH98ssv1uPt2rWz+zR3ScrPz9d9992nJ554Qo0bN7b79QFJGjVqlCZPnqxRo0a5OgoAwAGotS7vzz//1Lp169S2bdtin7Nnzx7t3btXw4cPt2uW4vJ2yV0BACiBefPmad68eVcc17x5c61fv97mvd69e+uHH3644rnjxo3TuHHjSp1Rku677z5NnjzZuib/m2++0dq1a7Vt2zbrmIyMDM2bN09btmxR69atJUl16tTR119/raVLl6pt27ZasmSJ6tSpo/nz58tgMKhBgwbav3+/XnzxxULvfd111+m6666z/jxt2jS9//77Wr9+vc1/mHfv3l0jR46UJD355JOaP3++tm3bpoYNG0qSatSooaioqDL9Hi7nxRdflLe3t8aMGWP3awMAgLKh1vLMWuuee+7Rhx9+qKysLPXq1Uuvv/56sc9dvny5GjVqpDZt2tglS0nRjAIAuL3U1FSZTKYrjqtevfol7505c6ZY5xa14WNxVa5cWT169NDKlStlsVjUo0cPVa5c2WbMzz//rPPnz6tTp0427+fk5FinmB86dEg333yzDAaD9fjFYqowGRkZmjp1qj7++GP9+eefunDhgrKysi75tq5Zs2bWPxsMBkVGRur06dPW9958882Sfehi2LNnj1555RX98MMPNp8JAAC4B2otz6y15s+fr+eee06//vqrnnrqKY0bN06LFy++4nlZWVlavXq1nnnmGbtlKSmaUQAAtxcSEqKYmJgrjqtSpcpl3yvOuSEhIaXKVtCwYcOs347997//veR4fn6+JOmTTz65JJefn5+kf/Y5KKknnnhCn332mV566SXVrVtX/v7+6t+/v3JycmzGFdyryWAwWDM5yldffaXTp0/bbC6al5en8ePH6+WXX75kjwYAAOBc1FpX5o611sW9nxo2bCij0aj//Oc/euaZZ6448+q9995TZmam7r//fofkKg6aUR7mgQcekNlsltFo1LJly1wdBwCcoizTugtOJXe0rl27WouSLl26XHL82muvlZ+fn06cOFHouv5rr71WH3zwgc173377bZH3/eqrrxQbG6u+fftK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YmhGAQDgxly6TG/mzJm68cYbFRwcrIiICN1xxx369ddfbcZYLBbFxcUpOjpa/v7+ateunQ4ePGgzJjs7W6NHj1blypUVGBio3r17KzEx0ZkfBQAAoFSohwAAwNWmVM2oo0eP2uXm27dv16OPPqpvv/1WmzZt0oULF9S5c2dlZGRYx8yePVvz5s3TokWLtGvXLkVGRqpTp05KS0uzjnn88cf1/vvva+3atfr666+Vnp6unj17Ki8vzy453cmQIUM0cuRIDRkyxNVRAACAHVAP2c+0adO0aNEiTZs2zdVRAABAEUq1TK9u3bq67bbbNHz4cPXv318VK1Ys1c03btxo83N8fLwiIiK0Z88e3XbbbbJYLHr55Zc1ZcoU61TrlStXqmrVqlq9erUeeughpaSkaPny5XrrrbfUsWNHSVJCQoKqV6+uzZs3q0uXLqXK5q46derk6ggAAMCOqIfsJzY21tURAABAMZRqZtRPP/2kG264QePHj1dkZKQeeughff/992UOk5KSIkkKDw+X9M8MrKSkJHXu3Nk6xs/PT23bttWOHTskSXv27FFubq7NmOjoaDVp0sQ6pqDs7GylpqbavAAAANwB9RAAACjvStWMatKkiebNmyeTyaT4+HglJSXp1ltvVePGjTVv3jydOXOmxNe0WCwaN26cbr31VjVp0kSSlJSUJEmqWrWqzdiqVatajyUlJcnX11dhYWGFjilo5syZCg0Ntb6qV69e4rwAAAD2Rj0EAACuBmXawNzb21t9+/bVO++8oxdffFFHjhzRhAkTVK1aNd1///06depUsa81atQo7du3T2vWrLnkmMFgsPnZYrFc8l5BRY2ZPHmyUlJSrK+TJ08WOycAAICjUA8BAICrQZmaUbt379bIkSMVFRWlefPmacKECTpy5Ii2bNkik8mkPn36FOs6o0eP1vr167V161ZVq1bN+n5kZKQkXfKN3unTp63fDkZGRionJ0fJycmFjinIz89PISEhNi9PMXjwYHXr1k2DBw92dRQAAGBH1ENlV61aNRkMBpvfHwAAcD+lakbNmzdPTZs2VZs2bfTnn3/qzTff1PHjxzVt2jTVrl1bt9xyi5YuXaoffvihyOtYLBaNGjVK69at05YtW1S7dm2b47Vr11ZkZKQ2bdpkfS8nJ0fbt29XmzZtJEktWrSQj4+PzZhTp07pwIED1jEA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7/5D/UkiERER2R4zkSVmIiLnxs0oIrKZ8ePHY+HChXjjjTfQ2dlpcXygS+x6eHgAAHp6eszGT5w4gWeffRZJSUmYNm0ajEYjrly5YjbH3d3d4n79+fj4IDg4GCdPnjQbLysrw5QpUwZTllULFiyAv78/tm3bZvV4X61Tp05FWVmZWbAqKyuDt7c3QkJCAHz31vqmpibteFtbGxoaGoa0noF6SERERPbHTPT/mImICOBmFBHZ2M6dO9HT04P7778fhYWFqK+vR21tLV5//XUkJCRYvU9AQAA8PT1x5MgR/POf/8T169cBABEREdi9ezdqa2vx2WefYfny5fD09DS776RJk3D06FE0NzejtbXV6vmfe+45vPzyy9i3bx/q6uqwceNGVFVVISMjY9h1enl54a233sL777+PRYsWoaSkBBcuXMA//vEPbNiwAWlpaQCA1atX49KlS1i7di2++uorvPfee8jOzsa6devg4vLdt+T58+dj9+7dOHHiBE6fPo3U1FS4uroOaT1hYWEwGAw4fPgw/vWvf6Gjo2PYtREREdHIMRMxExFRP/a/gB8ROZtvvvlG0tPTJSwsTDw8PCQkJEQWLVokx44d0+ag32WMRUTy8/MlNDRUXFxctMsYnzp1SuLj48VoNEpkZKS8++67Fpf8PXTokERERIibm9ugLmPs7u4+4GWMKysrtbHW1lYBYLZmaz7//HNZsmSJTJgwQYxGo0RERMgvf/lLqa+v1+b8r8sYX79+XZ566inx8fGR0NBQ+ctf/mL1Msb9+yUi4uvrKwUFBdrtLVu2iMlkEoPBwMsYExER3QGYiZiJiOg7BpFB/oU5IiIiIiIiIiKiEeKv6RERERERERERkd1wM4qIiIiIiIiIiOyGm1FERERERERERGQ33IwiIiIiIiIiIiK74WYUERERERERERHZDTejiIiIiIiIiIjIbrgZRUREREREREREdsPNKCIiIiIiIiIishtuRhERERERERERkd1wM4qIiIiIiIiIiOyGm1FERERERERERGQ33IwiIiIiIiIiIiK7+T9xpvyo47YALQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1200x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# we do not have this plot in the paper\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# Data series\n",
    "x = replcites3['Replication Cite no.']\n",
    "y = replcites3['Original cites after replication']\n",
    "\n",
    "# Compute statistics for annotations\n",
    "x_mean, x_median = x.mean(), x.median()\n",
    "y_mean, y_median = y.mean(), y.median()\n",
    "\n",
    "# Create histograms\n",
    "fig, axes = plt.subplots(1, 2, figsize=(12, 6), sharey=False)\n",
    "\n",
    "# Left: Histogram for replications\n",
    "axes[0].hist(x, bins=20, color=(0.6,0.6,0.6), alpha=0.7, label='Replication Cites')\n",
    "axes[0].axvline(x_mean, color='black', linestyle='dotted', linewidth=2, label=f'Mean: {x_mean:.1f}')\n",
    "axes[0].axvline(x_median, color='black', linestyle='dashed', linewidth=2, label=f'Median: {x_median:.1f}')\n",
    "axes[0].set_title('Replication Cites')\n",
    "axes[0].set_xlabel('Citation Count')\n",
    "axes[0].set_ylabel('Frequency')\n",
    "axes[0].legend()\n",
    "\n",
    "# Right: Histogram for originals\n",
    "axes[1].hist(y, bins=20, color=(0.6,0.6,0.6), alpha=0.7, label='Original Cites')\n",
    "axes[1].axvline(y_mean, color='black', linestyle='dotted', linewidth=2, label=f'Mean: {y_mean:.1f}')\n",
    "axes[1].axvline(y_median, color='black', linestyle='dashed', linewidth=2, label=f'Median: {y_median:.1f}')\n",
    "axes[1].set_title('Original Cites')\n",
    "axes[1].set_xlabel('Citation Count')\n",
    "axes[1].legend()\n",
    "\n",
    "# Adjust the y-axis limits to scale histograms similarly\n",
    "max_height = max(axes[0].get_ylim()[1], axes[1].get_ylim()[1])\n",
    "axes[0].set_ylim(0, max_height)\n",
    "axes[1].set_ylim(0, max_height)\n",
    "\n",
    "# Display the plots\n",
    "plt.tight_layout()\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "e6674992-2a84-4634-a7fe-10975b45c7f6",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_09648 caption {\n",
       "  text-align: center;\n",
       "  font-size: 150%;\n",
       "  color: blue;\n",
       "}\n",
       "#T_09648 td {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_09648 th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_09648 .true {\n",
       "  border-right: solid;\n",
       "  border-color: blue;\n",
       "  vertical-align: top;\n",
       "}\n",
       "#T_09648_row0_col0, #T_09648_row1_col0, #T_09648_row2_col0, #T_09648_row3_col0 {\n",
       "  width: 500px;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_09648\">\n",
       "  <caption>Table X: Which Paper Gets More Cited?</caption>\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_09648_level0_col0\" class=\"col_heading level0 col0\" >Compared to original paper cites since replication</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_09648_level0_row0\" class=\"row_heading level0 row0\" >Replication cited more</th>\n",
       "      <td id=\"T_09648_row0_col0\" class=\"data row0 col0\" >0.023</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_09648_level0_row1\" class=\"row_heading level0 row1\" >Replication cited less</th>\n",
       "      <td id=\"T_09648_row1_col0\" class=\"data row1 col0\" >0.974</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_09648_level0_row2\" class=\"row_heading level0 row2\" >Replication cited the same</th>\n",
       "      <td id=\"T_09648_row2_col0\" class=\"data row2 col0\" >0.002</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_09648_level0_row3\" class=\"row_heading level0 row3\" >Number of papers</th>\n",
       "      <td id=\"T_09648_row3_col0\" class=\"data row3 col0\" >428.000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7f4c2edabc70>"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# create a nice table that shows frequency of more/less citations\n",
    "# this is also used for table 2\n",
    "diffcites = []\n",
    "morethan = []\n",
    "lessthan = []\n",
    "equal = []\n",
    "for i in range(0, len(replcites3['Original cites after replication'])):\n",
    "    diffcites += [replcites3['Replication Cite no.'][i]-replcites3['Original cites after replication'][i]]\n",
    "for i in diffcites:\n",
    "    if i > 0:\n",
    "        morethan += [i]\n",
    "    elif i < 0:\n",
    "        lessthan += [i]\n",
    "    elif i == 0:\n",
    "        equal += [i]\n",
    "#below creates dictionary of percentages of whether the papers that cite original on average been cited more, less or the same than the replication\n",
    "originalshares = {'Replication cited more':(len(morethan)/len(replcites3)), 'Replication cited less':(len(lessthan)/len(replcites3)),\n",
    "                  'Replication cited the same':(len(equal)/len(replcites3)), 'Number of papers': int(len(replcites3))}\n",
    "moreorless=pd.DataFrame.from_dict(originalshares, orient='index', columns=[\"Compared to original paper cites since replication\"] )\n",
    "moreorless.style.set_caption(\"Table X: Which Paper Gets More Cited?\").format(precision=3).set_table_styles(styles).set_properties(**{'width': '500px'})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "f3eebb2c-a464-49b7-89e0-866a8412eee5",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:        Citations Ratio   R-squared:                       0.000\n",
      "Model:                            OLS   Adj. R-squared:                  0.000\n",
      "Method:                 Least Squares   F-statistic:                       nan\n",
      "Date:                Sat, 14 Dec 2024   Prob (F-statistic):                nan\n",
      "Time:                        09:00:37   Log-Likelihood:                -1097.4\n",
      "No. Observations:                 428   AIC:                             2197.\n",
      "Df Residuals:                     427   BIC:                             2201.\n",
      "Df Model:                           0                                         \n",
      "Covariance Type:                  HC2                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Constant       0.3475      0.152      2.285      0.023       0.049       0.646\n",
      "==============================================================================\n",
      "Omnibus:                     1026.561   Durbin-Watson:                   2.004\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):          3110761.885\n",
      "Skew:                          20.351   Prob(JB):                         0.00\n",
      "Kurtosis:                     418.666   Cond. No.                         1.00\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors are heteroscedasticity robust (HC2)\n",
      "                         QuantReg Regression Results                          \n",
      "==============================================================================\n",
      "Dep. Variable:        Citations Ratio   Pseudo R-squared:           -2.220e-16\n",
      "Model:                       QuantReg   Bandwidth:                     0.09727\n",
      "Method:                 Least Squares   Sparsity:                       0.3528\n",
      "Date:                Sat, 14 Dec 2024   No. Observations:                  428\n",
      "Time:                        09:00:37   Df Residuals:                      427\n",
      "                                        Df Model:                            0\n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Constant       0.1095      0.009     12.847      0.000       0.093       0.126\n",
      "==============================================================================\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Mean Ratio, Standard Counterfactual</th>\n",
       "      <th>Median Ratio, Standard Counterfactual</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.347456</td>\n",
       "      <td>0.109532</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.15207</td>\n",
       "      <td>0.008526</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.000022</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Mean Ratio, Standard Counterfactual Median Ratio, Standard Counterfactual\n",
       "0                            0.347456                              0.109532\n",
       "1                             0.15207                              0.008526\n",
       "2                            0.000022                                   0.0"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# regression analysis to get significance for mean and median\n",
    "\n",
    "allest1=pd.DataFrame(columns=['Mean Ratio, Standard Counterfactual', 'Median Ratio, Standard Counterfactual'])\n",
    "\n",
    "\n",
    "# regression analysis\n",
    "import statsmodels.api as sm \n",
    "from statsmodels.regression.quantile_regression import QuantReg\n",
    "# prepare data\n",
    "\n",
    "a=pd.DataFrame()\n",
    "a['Citations Ratio']=replications['Replication Cite no.']/originals['Original cites after replication']\n",
    "a['Constant']=1\n",
    "# OLS regression without page nrs\n",
    "x = a['Constant']\n",
    "y=a['Citations Ratio']\n",
    "\n",
    "model = sm.OLS(y, x, missing='drop')\n",
    "results = model.fit(use_t=True, cov_type='HC2')\n",
    "allest1.at[0,'Mean Ratio, Standard Counterfactual']=results.params[0]\n",
    "allest1.at[1,'Mean Ratio, Standard Counterfactual']=results.bse[0]\n",
    "\n",
    "hypotheses = 'Constant = 1'\n",
    "t_test = results.t_test(hypotheses)\n",
    "allest1.at[2,'Mean Ratio, Standard Counterfactual']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "print(results.summary())\n",
    "\n",
    "quantile = 0.5\n",
    "model = sm.QuantReg(y, x)\n",
    "results = model.fit(q=quantile)\n",
    "hypotheses = 'Constant = 1'\n",
    "t_test = results.t_test(hypotheses)\n",
    "\n",
    "allest1.at[0,'Median Ratio, Standard Counterfactual']=results.params[0]\n",
    "allest1.at[1,'Median Ratio, Standard Counterfactual']=results.bse[0]\n",
    "allest1.at[2,'Median Ratio, Standard Counterfactual']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "print(results.summary())\n",
    "\n",
    "allest1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "aaa4345e-ec5a-45ec-b1f7-13ba13ac9590",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "8d59b2e2-26e1-49f6-a716-d9dffab61eaa",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Q1 - first step of tables with results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "a5de224e-6557-475e-b34f-3b8197e1f93b",
   "metadata": {},
   "outputs": [],
   "source": [
    "# end of Q1!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "20b7c7f6-0a0e-423b-a753-02958244d1e8",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Q2 - counterfactual is other papers that cite the original - dataprep"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "be5e2b33-dd68-43fd-9182-faca81f513cd",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "replications=pd.read_pickle('replications')\n",
    "originals=pd.read_pickle('originals')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "a50a05b5-00a2-47d7-81b1-182d7483fa34",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n",
      "1\n",
      "2\n",
      "3\n",
      "4\n",
      "5\n",
      "6\n",
      "7\n",
      "8\n",
      "9\n",
      "10\n",
      "11\n",
      "12\n",
      "13\n",
      "14\n",
      "15\n",
      "16\n",
      "17\n",
      "18\n",
      "19\n",
      "20\n",
      "21\n",
      "22\n",
      "23\n",
      "24\n",
      "25\n",
      "26\n",
      "27\n",
      "28\n",
      "29\n",
      "30\n",
      "31\n",
      "32\n",
      "33\n",
      "34\n",
      "35\n",
      "36\n",
      "37\n",
      "38\n",
      "39\n",
      "40\n",
      "41\n",
      "42\n",
      "43\n",
      "44\n",
      "45\n",
      "46\n",
      "47\n",
      "48\n",
      "49\n",
      "50\n",
      "51\n",
      "52\n",
      "53\n",
      "54\n",
      "55\n",
      "56\n",
      "57\n",
      "58\n",
      "59\n",
      "60\n",
      "61\n",
      "62\n",
      "63\n",
      "64\n",
      "65\n",
      "66\n",
      "67\n",
      "68\n",
      "69\n",
      "70\n",
      "71\n",
      "72\n",
      "73\n",
      "74\n",
      "75\n",
      "76\n",
      "77\n",
      "78\n",
      "79\n",
      "80\n",
      "81\n",
      "82\n",
      "83\n",
      "84\n",
      "85\n",
      "86\n",
      "87\n",
      "88\n",
      "89\n",
      "90\n",
      "91\n",
      "92\n",
      "93\n",
      "94\n",
      "95\n",
      "96\n",
      "97\n",
      "98\n",
      "99\n",
      "100\n",
      "101\n",
      "102\n",
      "103\n",
      "104\n",
      "105\n",
      "106\n",
      "107\n",
      "108\n",
      "109\n",
      "110\n",
      "111\n",
      "112\n",
      "113\n",
      "114\n",
      "115\n",
      "116\n",
      "117\n",
      "118\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_534986/4058452339.py:22: FutureWarning: Calling int on a single element Series is deprecated and will raise a TypeError in the future. Use int(ser.iloc[0]) instead\n",
      "  a.loc[a['count']<0,1]=round(a[a['count']<0][0].astype(int),-(a[a['count']<0][0].str.len()-1))+a[a['count']<0][1].astype(int)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "119\n",
      "120\n",
      "121\n",
      "122\n",
      "123\n",
      "124\n",
      "125\n",
      "126\n",
      "127\n",
      "128\n",
      "129\n",
      "130\n",
      "131\n",
      "132\n",
      "133\n",
      "134\n",
      "135\n",
      "136\n",
      "137\n",
      "138\n",
      "139\n",
      "140\n",
      "141\n",
      "142\n",
      "143\n",
      "144\n",
      "145\n",
      "146\n",
      "147\n",
      "148\n",
      "149\n",
      "150\n",
      "151\n",
      "152\n",
      "153\n",
      "154\n",
      "155\n",
      "156\n",
      "157\n",
      "158\n",
      "159\n",
      "160\n",
      "161\n",
      "162\n",
      "163\n",
      "164\n",
      "165\n",
      "166\n",
      "167\n",
      "168\n",
      "169\n",
      "170\n",
      "171\n",
      "172\n",
      "173\n",
      "174\n",
      "175\n",
      "176\n",
      "177\n",
      "178\n",
      "179\n",
      "180\n",
      "181\n",
      "182\n",
      "183\n",
      "184\n",
      "185\n",
      "186\n",
      "187\n",
      "188\n",
      "189\n",
      "190\n",
      "191\n",
      "192\n",
      "193\n",
      "194\n",
      "195\n",
      "196\n",
      "197\n",
      "198\n",
      "199\n",
      "200\n",
      "201\n",
      "202\n",
      "203\n",
      "204\n",
      "205\n",
      "206\n",
      "207\n",
      "208\n",
      "209\n",
      "210\n",
      "211\n",
      "212\n",
      "213\n",
      "214\n",
      "215\n",
      "216\n",
      "217\n",
      "218\n",
      "219\n",
      "220\n",
      "221\n",
      "222\n",
      "223\n",
      "224\n",
      "225\n",
      "226\n",
      "227\n",
      "228\n",
      "229\n",
      "230\n",
      "231\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_534986/4058452339.py:22: FutureWarning: Calling int on a single element Series is deprecated and will raise a TypeError in the future. Use int(ser.iloc[0]) instead\n",
      "  a.loc[a['count']<0,1]=round(a[a['count']<0][0].astype(int),-(a[a['count']<0][0].str.len()-1))+a[a['count']<0][1].astype(int)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "232\n",
      "233\n",
      "234\n",
      "235\n",
      "236\n",
      "237\n",
      "238\n",
      "239\n",
      "240\n",
      "241\n",
      "242\n",
      "243\n",
      "244\n",
      "245\n",
      "246\n",
      "247\n",
      "248\n",
      "249\n",
      "250\n",
      "251\n",
      "252\n",
      "253\n",
      "254\n",
      "255\n",
      "256\n",
      "257\n",
      "258\n",
      "259\n",
      "260\n",
      "261\n",
      "262\n",
      "263\n",
      "264\n",
      "265\n",
      "266\n",
      "267\n",
      "268\n",
      "269\n",
      "270\n",
      "271\n",
      "272\n",
      "273\n",
      "274\n",
      "275\n",
      "276\n",
      "277\n",
      "278\n",
      "279\n",
      "280\n",
      "281\n",
      "282\n",
      "283\n",
      "284\n",
      "285\n",
      "286\n",
      "287\n",
      "288\n",
      "289\n",
      "290\n",
      "291\n",
      "292\n",
      "293\n",
      "294\n",
      "295\n",
      "296\n",
      "297\n",
      "298\n",
      "299\n",
      "300\n",
      "301\n",
      "302\n",
      "303\n",
      "304\n",
      "305\n",
      "306\n",
      "307\n",
      "308\n",
      "309\n",
      "310\n",
      "311\n",
      "312\n",
      "313\n",
      "314\n",
      "315\n",
      "316\n",
      "317\n",
      "318\n",
      "319\n",
      "320\n",
      "321\n",
      "322\n",
      "323\n",
      "324\n",
      "325\n",
      "326\n",
      "327\n",
      "328\n",
      "329\n",
      "330\n",
      "331\n",
      "332\n",
      "333\n",
      "334\n",
      "335\n",
      "336\n",
      "337\n",
      "338\n",
      "339\n",
      "340\n",
      "341\n",
      "342\n",
      "343\n",
      "344\n",
      "345\n",
      "346\n",
      "347\n",
      "348\n",
      "349\n",
      "350\n",
      "351\n",
      "352\n",
      "353\n",
      "354\n",
      "355\n",
      "356\n",
      "357\n",
      "358\n",
      "359\n",
      "360\n",
      "361\n",
      "362\n",
      "363\n",
      "364\n",
      "365\n",
      "366\n",
      "367\n",
      "368\n",
      "369\n",
      "370\n",
      "371\n",
      "372\n",
      "373\n",
      "374\n",
      "375\n",
      "376\n",
      "377\n",
      "378\n",
      "379\n",
      "380\n",
      "381\n",
      "382\n",
      "383\n",
      "384\n",
      "385\n",
      "386\n",
      "387\n",
      "388\n",
      "389\n",
      "390\n",
      "391\n",
      "392\n",
      "393\n",
      "394\n",
      "395\n",
      "396\n",
      "397\n",
      "398\n",
      "399\n",
      "400\n",
      "401\n",
      "402\n",
      "403\n",
      "404\n",
      "405\n",
      "406\n",
      "407\n",
      "408\n",
      "409\n",
      "410\n",
      "411\n",
      "412\n",
      "413\n",
      "414\n",
      "415\n",
      "416\n",
      "417\n",
      "418\n",
      "419\n",
      "420\n",
      "421\n",
      "422\n",
      "423\n",
      "424\n",
      "425\n",
      "426\n",
      "427\n"
     ]
    }
   ],
   "source": [
    "#Citations from each paper citing original paper during the same year as the replication:\n",
    "from pybliometrics.scopus import ScopusSearch #imports the scopus search API, may need to input API key for this\n",
    "pubcites=[]\n",
    "numpages=[]\n",
    "numauthors=[]\n",
    "\n",
    "for i in range(0,len(originals)):\n",
    "    try:\n",
    "        print(i)\n",
    "        #Below creates a query where the REFEID is the original paper EID so checks to see what papers have it in their reference list, within the same year as the replication, excluding the replication paper\n",
    "        s = ScopusSearch('REFEID(%s) AND PUBYEAR = %s AND NOT EID(%s)' %(originals.loc[i,'EID original'], str(replications.loc[i,'Replication Year'])[:4],  replications.loc[i,'EID replication']), refresh = 2)\n",
    "        df = pd.DataFrame(s.results)\n",
    "        # to exclude other articles in the citing papers that might be in the list of replications\n",
    "        df=df[~df['eid'].isin (replications['EID replication'])]\n",
    "        df=df[df['eid']!=\"2-s2.0-77950474717\"] # to exclude a book (lots of pages, leading to outlier] that was miscategorized as article\n",
    "        df=df[df['subtype'].isin(['ar', 're', 'no']) ] # only articles to avoid errata etc\n",
    "        a=pd.DataFrame()\n",
    "        a=df['pageRange'].str.replace('.','').str.replace('x','10').str.replace('R','').str.replace('E','').str.replace('e','').str.replace('+I','').str.replace('F','').str.replace('S','').str.replace('i','').str.split('-', expand=True)\n",
    "        if 1 in a.columns: # if not it means all pages are missing\n",
    "            a['count']=1+a[a[1].notna() & a[0].notna()][1].astype(int)-a[a[1].notna() & a[0].notna()][0].astype(int)\n",
    "            try:\n",
    "                a.loc[a['count']<0,1]=round(a[a['count']<0][0].astype(int),-(a[a['count']<0][0].str.len()-1))+a[a['count']<0][1].astype(int)\n",
    "            except:\n",
    "                pass\n",
    "            \n",
    "            try:\n",
    "                a['count']=1+a[a[1].notna()][1].astype(int)-a[a[1].notna()][0].astype(int)\n",
    "            except:\n",
    "                pass\n",
    "            a.loc[a[1].isna() & a[0].notna(),'count']=1\n",
    "            a.loc[a[1].notna() & a[0].isna(),'count']=1\n",
    "            a['cites']=df['citedby_count']\n",
    "            a['nr authors']=df['author_count'].astype(int)\n",
    "        \n",
    "        else:\n",
    "            a['cites']=df['citedby_count']\n",
    "            a['count']=None\n",
    "            a['nr authors']=df['author_count'].astype(int)\n",
    "        \n",
    "        pubcites +=[a['cites'].to_list()] #adds citation count list\n",
    "        numpages +=[a['count'].to_list()]\n",
    "        numauthors +=[a['nr authors'].to_list()]\n",
    "    except:\n",
    "        pubcites += [None]\n",
    "        numpages += [None]\n",
    "        numauthors +=[None]\n",
    "\n",
    "\n",
    "replications['Citations of papers citing original'] = pubcites\n",
    "replications['Page length of papers citing original'] = numpages\n",
    "replications['nr authors of papers citing original'] = numauthors\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "fbcbaacc-058f-4841-ba49-9b71bd70101c",
   "metadata": {},
   "outputs": [],
   "source": [
    "#Gets averages for the papers citing original in same year as replication\n",
    "import numpy as np\n",
    "averagecites=[]\n",
    "mediancites=[]\n",
    "averagecitesp=[]\n",
    "mediancitesp=[]\n",
    "averagepages=[]\n",
    "medianpages=[]\n",
    "averageauthors=[]\n",
    "medianauthors=[]\n",
    "\n",
    "for i in range(0,len(replications)):\n",
    "    try:\n",
    "        \n",
    "        L = pd.DataFrame()\n",
    "        L['cites']=replications['Citations of papers citing original'][i]\n",
    "        L['nr authors']=replications['nr authors of papers citing original'][i]\n",
    "        averagecites+=[L.mean()['cites']]\n",
    "        mediancites +=[L.median()['cites']]\n",
    "        \n",
    "        L['pages']=replications['Page length of papers citing original'][i]\n",
    "        L=L.dropna()                \n",
    "        averagecitesp+=[L.mean()['cites']]\n",
    "        mediancitesp +=[L.median()['cites']]\n",
    "        \n",
    "        averageauthors+=[L.mean()['nr authors']]\n",
    "        medianauthors +=[L.median()['nr authors']]\n",
    "        \n",
    "        averagepages += [L.mean()['pages']] \n",
    "        medianpages += [L.median()['pages']] \n",
    "\n",
    "    \n",
    "    except:\n",
    "        averagecites += [None]\n",
    "        mediancites += [None]\n",
    "        averagecitesp += [None]\n",
    "        mediancitesp += [None]\n",
    "        averagepages += [None]\n",
    "        medianpages += [None]\n",
    "        averageauthors=[None]\n",
    "        medianauthors=[None]\n",
    "        \n",
    "replications['Average citations of papers citing original'] = averagecites\n",
    "replications['Median citations of papers citing original'] = mediancites\n",
    "replications['Average pages of papers citing original'] = averagepages\n",
    "replications['Median pages of papers citing original'] = medianpages\n",
    "replications['Average citations of papers citing original (with pages only)'] = averagecitesp\n",
    "replications['Median citations of papers citing original (with pages only)'] = mediancitesp\n",
    "replications['Average nr authors of papers citing original'] = averageauthors\n",
    "replications['Median nr authors of papers citing original'] = medianauthors\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "b9a49d31-c48c-47d2-b804-206394ddaaac",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "replications.to_pickle('replications')\n",
    "originals.to_pickle('originals')\n",
    "\n",
    "replications=pd.read_pickle('replications')\n",
    "originals=pd.read_pickle('originals')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "befa936f-f683-43fb-b8f6-4d1cdf102c3a",
   "metadata": {},
   "outputs": [],
   "source": [
    "#import pandas as pd\n",
    "#replications=pd.read_pickle('replications final')\n",
    "#originals=pd.read_pickle('originals final')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "b29b0b38-392e-4595-8301-579cad96ff17",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5\n",
      "6\n",
      "20\n",
      "27\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "395"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# adding ratios\n",
    "# counting how many observations we will drop because of zero\n",
    "import numpy as np\n",
    "print(np.sum(replications['Average citations of papers citing original']==0))\n",
    "print(np.sum(replications['Median citations of papers citing original']==0))\n",
    "\n",
    "# compared to zero citations for replciations [which are included]\n",
    "print(np.sum(replications['Replication Cite no.']==0))\n",
    "\n",
    "# there are 5 - which is small compared to zeros for replications which are included\n",
    "# so by excluding the low counterfactuals we bias ourselves slightly towards finding less of an effect for replications\n",
    "\n",
    "# THERE ARE ALSO SOME ORIGINALS THAT WERE NEVER CITED IN YEAR OF REPLICATION\n",
    "print(np.sum(replications['Average citations of papers citing original'].isna()))\n",
    "# so let's create the dataframe that we will use for q2, excluding the never cited originals and the 0 cited counterfactuals\n",
    "\n",
    "replicationsq2=replications[replications['Average citations of papers citing original'].notna()]\n",
    "replicationsq2=replicationsq2[replicationsq2['Average citations of papers citing original']!=0]\n",
    "replicationsq2=replicationsq2[replicationsq2['Median citations of papers citing original']!=0]\n",
    "replicationsq2=replicationsq2.reset_index(drop=True)\n",
    "len(replicationsq2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "22ed795b-805a-4e4c-85db-b5f3431524e8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_b7ddf caption {\n",
       "  text-align: center;\n",
       "  font-size: 150%;\n",
       "  color: blue;\n",
       "}\n",
       "#T_b7ddf td {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_b7ddf th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_b7ddf .true {\n",
       "  border-right: solid;\n",
       "  border-color: blue;\n",
       "  vertical-align: top;\n",
       "}\n",
       "#T_b7ddf_row0_col0, #T_b7ddf_row0_col1, #T_b7ddf_row0_col2, #T_b7ddf_row0_col3, #T_b7ddf_row0_col4, #T_b7ddf_row1_col0, #T_b7ddf_row1_col1, #T_b7ddf_row1_col2, #T_b7ddf_row1_col3, #T_b7ddf_row1_col4, #T_b7ddf_row2_col0, #T_b7ddf_row2_col1, #T_b7ddf_row2_col2, #T_b7ddf_row2_col3, #T_b7ddf_row2_col4, #T_b7ddf_row3_col0, #T_b7ddf_row3_col1, #T_b7ddf_row3_col2, #T_b7ddf_row3_col3, #T_b7ddf_row3_col4, #T_b7ddf_row4_col0, #T_b7ddf_row4_col1, #T_b7ddf_row4_col2, #T_b7ddf_row4_col3, #T_b7ddf_row4_col4, #T_b7ddf_row5_col0, #T_b7ddf_row5_col1, #T_b7ddf_row5_col2, #T_b7ddf_row5_col3, #T_b7ddf_row5_col4, #T_b7ddf_row6_col0, #T_b7ddf_row6_col1, #T_b7ddf_row6_col2, #T_b7ddf_row6_col3, #T_b7ddf_row6_col4 {\n",
       "  width: 500px;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_b7ddf\">\n",
       "  <caption>Table 3: Comparing Citations using the Same Original Counterfactual</caption>\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_b7ddf_level0_col0\" class=\"col_heading level0 col0\" >(I) Replication citations</th>\n",
       "      <th id=\"T_b7ddf_level0_col1\" class=\"col_heading level0 col1\" >(II) Same Original, Average Citations</th>\n",
       "      <th id=\"T_b7ddf_level0_col2\" class=\"col_heading level0 col2\" >(III) Same Original, Median Citations</th>\n",
       "      <th id=\"T_b7ddf_level0_col3\" class=\"col_heading level0 col3\" >(IV) Ratio, Same Original, Average Citations</th>\n",
       "      <th id=\"T_b7ddf_level0_col4\" class=\"col_heading level0 col4\" >(V) Ratio, Same Original, Median Citations</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_b7ddf_level0_row0\" class=\"row_heading level0 row0\" >Mean</th>\n",
       "      <td id=\"T_b7ddf_row0_col0\" class=\"data row0 col0\" >3.39</td>\n",
       "      <td id=\"T_b7ddf_row0_col1\" class=\"data row0 col1\" >4.30</td>\n",
       "      <td id=\"T_b7ddf_row0_col2\" class=\"data row0 col2\" >2.17</td>\n",
       "      <td id=\"T_b7ddf_row0_col3\" class=\"data row0 col3\" >1.12</td>\n",
       "      <td id=\"T_b7ddf_row0_col4\" class=\"data row0 col4\" >2.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_b7ddf_level0_row1\" class=\"row_heading level0 row1\" >Median</th>\n",
       "      <td id=\"T_b7ddf_row1_col0\" class=\"data row1 col0\" >1.50</td>\n",
       "      <td id=\"T_b7ddf_row1_col1\" class=\"data row1 col1\" >3.38</td>\n",
       "      <td id=\"T_b7ddf_row1_col2\" class=\"data row1 col2\" >1.71</td>\n",
       "      <td id=\"T_b7ddf_row1_col3\" class=\"data row1 col3\" >0.52</td>\n",
       "      <td id=\"T_b7ddf_row1_col4\" class=\"data row1 col4\" >0.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_b7ddf_level0_row2\" class=\"row_heading level0 row2\" >Min</th>\n",
       "      <td id=\"T_b7ddf_row2_col0\" class=\"data row2 col0\" >0.00</td>\n",
       "      <td id=\"T_b7ddf_row2_col1\" class=\"data row2 col1\" >0.08</td>\n",
       "      <td id=\"T_b7ddf_row2_col2\" class=\"data row2 col2\" >0.08</td>\n",
       "      <td id=\"T_b7ddf_row2_col3\" class=\"data row2 col3\" >0.00</td>\n",
       "      <td id=\"T_b7ddf_row2_col4\" class=\"data row2 col4\" >0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_b7ddf_level0_row3\" class=\"row_heading level0 row3\" >Q.1</th>\n",
       "      <td id=\"T_b7ddf_row3_col0\" class=\"data row3 col0\" >0.72</td>\n",
       "      <td id=\"T_b7ddf_row3_col1\" class=\"data row3 col1\" >2.16</td>\n",
       "      <td id=\"T_b7ddf_row3_col2\" class=\"data row3 col2\" >1.09</td>\n",
       "      <td id=\"T_b7ddf_row3_col3\" class=\"data row3 col3\" >0.20</td>\n",
       "      <td id=\"T_b7ddf_row3_col4\" class=\"data row3 col4\" >0.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_b7ddf_level0_row4\" class=\"row_heading level0 row4\" >Q.3</th>\n",
       "      <td id=\"T_b7ddf_row4_col0\" class=\"data row4 col0\" >3.60</td>\n",
       "      <td id=\"T_b7ddf_row4_col1\" class=\"data row4 col1\" >5.32</td>\n",
       "      <td id=\"T_b7ddf_row4_col2\" class=\"data row4 col2\" >2.62</td>\n",
       "      <td id=\"T_b7ddf_row4_col3\" class=\"data row4 col3\" >1.11</td>\n",
       "      <td id=\"T_b7ddf_row4_col4\" class=\"data row4 col4\" >2.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_b7ddf_level0_row5\" class=\"row_heading level0 row5\" >Max</th>\n",
       "      <td id=\"T_b7ddf_row5_col0\" class=\"data row5 col0\" >79.42</td>\n",
       "      <td id=\"T_b7ddf_row5_col1\" class=\"data row5 col1\" >38.13</td>\n",
       "      <td id=\"T_b7ddf_row5_col2\" class=\"data row5 col2\" >24.47</td>\n",
       "      <td id=\"T_b7ddf_row5_col3\" class=\"data row5 col3\" >23.09</td>\n",
       "      <td id=\"T_b7ddf_row5_col4\" class=\"data row5 col4\" >35.93</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_b7ddf_level0_row6\" class=\"row_heading level0 row6\" ># Obs.</th>\n",
       "      <td id=\"T_b7ddf_row6_col0\" class=\"data row6 col0\" >395</td>\n",
       "      <td id=\"T_b7ddf_row6_col1\" class=\"data row6 col1\" >395</td>\n",
       "      <td id=\"T_b7ddf_row6_col2\" class=\"data row6 col2\" >395</td>\n",
       "      <td id=\"T_b7ddf_row6_col3\" class=\"data row6 col3\" >395</td>\n",
       "      <td id=\"T_b7ddf_row6_col4\" class=\"data row6 col4\" >395</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7fd8c4f6d700>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Notes: this table is based on 395 pairs of replication papers and the papers they replicated. It compares citations of replications and citations of \n",
      "the papers that cited the paper they replicated, in the year the replication was published. Since each replication is matched to several \n",
      "counterfactuals, we explore both the distribution when using the mean counterfactual for each replication (column II and IV), and the median \n",
      "counterfactual for each replication (column III and V)  The Ratio columns divide replication citations by the corresponding counterfactual citations. \n",
      "This sample excludes the 6 replications whose counterfactual had zero citations and the 27 replications who had original papers that were not cited by other papers in the year of the publication of the replication. Q1 and Q3 are the first and third quartile.\n"
     ]
    }
   ],
   "source": [
    "styles = [{'selector': 'caption', 'props': 'text-align: center; font-size: 150%; color: blue'},\n",
    "        {'selector': 'td', 'props': 'text-align: center;'},\n",
    "         {'selector': 'th', 'props': 'text-align: center;'},  \n",
    "         {'selector': '.true', 'props': 'border-right:solid; border-color:blue; vertical-align:top'}]\n",
    "\n",
    "cols = [\"(I) Replication citations\", \"(II) Same Original, Average Citations\", \"(III) Same Original, Median Citations\",\"(IV) Ratio, Same Original, Average Citations\",\"(V) Ratio, Same Original, Median Citations\"]\n",
    "summarydf = pd.DataFrame(columns=cols)\n",
    "summarydf[\"(I) Replication citations\"] = (replicationsq2['Replication Cite no.']/(2025-replicationsq2['Replication Year'])).describe()\n",
    "summarydf[\"(III) Same Original, Median Citations\"] = (replicationsq2['Median citations of papers citing original']/(2025-replicationsq2['Replication Year'])).describe()\n",
    "summarydf[\"(II) Same Original, Average Citations\"] = (replicationsq2['Average citations of papers citing original']/(2025-replicationsq2['Replication Year'])).describe()\n",
    "summarydf[\"(IV) Ratio, Same Original, Average Citations\"] = (replicationsq2['Replication Cite no.']/replicationsq2['Average citations of papers citing original']).describe()\n",
    "summarydf[\"(V) Ratio, Same Original, Median Citations\"] = (replicationsq2['Replication Cite no.']/replicationsq2['Median citations of papers citing original']).describe()\n",
    "\n",
    "\n",
    "a=summarydf.T[['mean','50%','min',\t'25%'\t,'75%',\t'max','count']]\n",
    "a=a.round(2)\n",
    "a['count']=a['count'].apply(lambda x: f'{x:.0f}')\n",
    "a=a.rename(columns={'50%': 'Median', 'mean': 'Mean', '25%': 'Q.1', '75%': 'Q.3', 'max': 'Max', 'min': 'Min', 'count': '# Obs.'})\n",
    "display(a.T.style.set_caption(\"Table 3: Comparing Citations using the Same Original Counterfactual\").format(precision=2).set_table_styles(styles).set_properties(**{'width': '500px'}))\n",
    "print('Notes: this table is based on 395 pairs of replication papers and the papers they replicated. It compares citations of replications and citations of \\nthe papers that cited the paper they replicated, in the year the replication was published. Since each replication is matched to several \\ncounterfactuals, we explore both the distribution when using the mean counterfactual for each replication (column II and IV), and the median \\ncounterfactual for each replication (column III and V)  The Ratio columns divide replication citations by the corresponding counterfactual citations. \\nThis sample excludes the 6 replications whose counterfactual had zero citations and the 27 replications who had original papers that were not cited by other papers in the year of the publication of the replication. Q1 and Q3 are the first and third quartile.')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "b5193173-1944-439f-b724-f67f0ffc6a11",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACPl0lEQVR4nOzdeZzNdf//8ecxm9nNnDFmsY1doUKJXNnCIIpLdEkZVMqFbIlURmVJNSoukoSapOVSuVqUspS0SEkkScQME45pNsyMmc/vj37Ot4NZnXXO4367nVvO5/M6n8/rPea6evU67/f7YzIMwxAAAAAAAADgRNVcnQAAAAAAAAC8D00pAAAAAAAAOB1NKQAAAAAAADgdTSkAAAAAAAA4HU0pAAAAAAAAOB1NKQAAAAAAADgdTSkAAAAAAAA4HU0pAAAAAAAAOB1NKQAAAAAAADgdTSkANlasWCGTyWR9+fr6KjY2Vrfeeqv27dvn8PsnJSWpfv36Nsfq16+vpKQkh91z0aJFWrFixQXHDx48KJPJdNFzzvL5559r0KBBio+Pl7+/v8LDw9WhQwctXrxYeXl51rjzf0ZHjhxRcnKyduzY4fykAQDwUl999ZVuueUWxcbGyt/fXzExMRo4cKC+/PLLCl0nOTlZJpOpUjls2rRJJpNJmzZtqtTny6tz587q3LlzuWKLi4v1yiuv6IYbblBUVJT8/PwUHR2tG2+8Uf/73/9UXFws6eK119atW5WcnKw///zT/oMA4HI0pQBc1PLly/Xll1/qk08+0ZgxY7R27Vp17NhRmZmZTs/l7bff1sMPP+yw65fUlIqNjdWXX36pPn36OOzepZkxY4auv/56paen67HHHtP69eu1evVqdevWTcnJyXrooYessef/jI4cOaKZM2fSlAIAwEkWLFig6667TmlpaZo3b54++eQTPfXUU0pPT1fHjh21cOHCcl/rzjvvrHAj65zWrVvryy+/VOvWrSv1eXs7c+aMevfurWHDhik6OlqLFy/Whg0b9PzzzysuLk633HKL/ve//0m6eO21detWzZw5k6YUUEX5ujoBAO6pRYsWatu2raS/vgkrKirSjBkz9M4772j48OFOzeWqq65y6v3OCQgI0LXXXuuSe7/55pt69NFHNXLkSC1dutTm29JevXppypQpNsWqq35GAABA+uKLLzR+/Hj17t1bb7/9tnx9/+8/s2699Vb1799f9913n6666ipdd911JV7n1KlTCgoKUu3atVW7du1K5RIWFuay+uViJk6cqI8++kgrV67UHXfcYXNuwIABuv/++3X69GlJrq29ALgGM6UAlMu5BtUff/xhc/zbb79Vv379FBkZqerVq+uqq67SG2+8YRNzbkng+vXrNXz4cEVGRio4OFh9+/bVb7/9Vua9L7Z8788//9SkSZPUoEEDBQQEKDo6Wr1799bPP/9sjZk5c6batWunyMhIhYWFqXXr1lq2bJkMw7C59u7du7V582brksVzywdLWr63ZcsWdevWTaGhoQoKClKHDh30/vvvX3TMGzdu1L333quoqCiZzWYNGDBAR44cKXPMjz76qCIiIvTcc89ddPp+aGioevTocdGf0aZNm3T11VdLkoYPH24dV3JysjW+PH9vp06d0uTJk5WQkKDq1asrMjJSbdu21WuvvVZm/gAAeJM5c+bIZDJp8eLFNg0pSfL19dWiRYtkMpk0d+5c6/FzS/S+++47DRw4UBEREWrYsKHNub/Lz8/XpEmTFBMTo6CgIF1//fXavn37BXXSxZbvJSUlKSQkRL/++qt69+6tkJAQ1alTR5MmTVJ+fr7NfcpTP5VXRkaGXnzxRfXs2fOChtQ5jRs3VqtWrSRdWHslJyfr/vvvlyQlJCRYa5q/j+31119X+/btFRwcrJCQEPXs2VPff/+9zT1+++033XrrrYqLi1NAQIBq1aqlbt26MaMccAPMlAJQLgcOHJAkNWnSxHps48aNSkxMVLt27fT8888rPDxcq1ev1uDBg3Xq1KkLGkkjR45U9+7dtWrVKh0+fFgPPfSQOnfurJ07d6pGjRrlziUnJ0cdO3bUwYMH9cADD6hdu3bKzc3VZ599pqNHj6pZs2aS/ipsRo0apbp160r6a5+HsWPHKj09XY888oikv5a9DRw4UOHh4Vq0aJGkv76lK8nmzZvVvXt3tWrVSsuWLVNAQIAWLVqkvn376rXXXtPgwYNt4u+880716dPHOub7779fQ4cO1YYNG0q8x9GjR7Vr1y4NHjxYQUFB5f65nNO6dWstX75cw4cP10MPPWSdAn/uG9fy/r1NnDhRr7zyih5//HFdddVVysvL065du2SxWCqcEwAAVVVRUZE2btyotm3blji7qU6dOmrTpo02bNigoqIi+fj4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LFmiXr16qWfPnkpKSlJ8fLxOnjypPXv26LvvvtObb75pc41vv/1Wd955p2655RYdPnxY06dPV3x8vHXZWHmNHz9er7/+um666SZNnTpV11xzjU6fPq3NmzfrxhtvVJcuXdSnTx+lpKRoyJAhuvvuu2WxWPTUU09d9Ml6LVu21OrVq/X666+rQYMGql69ulq2bHnRe8+ZM0fdu3dXly5dNHnyZPn7+2vRokXatWuXXnvttXJ921ket9xyix5++GE99thj+vnnnzVy5Eg1bNhQp06d0tdff60lS5Zo8ODB1in252vYsKECAwP16quvqnnz5goJCVFcXJzi4uLK/ffWrl073XjjjWrVqpUiIiK0Z88evfLKK2rfvr1dZ28BAODprrvuOj3zzDMaP368OnbsqDFjxqhu3bo6dOiQ/vOf/+jrr7/WM888ow4dOlTq+pdffrn+9a9/6emnn5aPj4+6du2q3bt36+mnn1Z4eLiqVbPPXIOK1E/llZKSot9++01JSUn66KOP1L9/f9WqVUsnTpzQ+vXrtXz5cq1evdq67+b5ztVkzz77rIYNGyY/Pz81bdpU9evX16OPPqrp06frt99+s+6B+scff+ibb76xzvjeuXOnxowZo1tuuUWNGzeWv7+/NmzYoJ07d2rq1KmVHhcAO3HpNusA3M65p8Zt27btgnOnT5826tatazRu3Ng4e/asYRiG8cMPPxiDBg0yoqOjDT8/PyMmJsbo2rWr8fzzz19wzY8//ti4/fbbjRo1ahiBgYFG7969jX379tncozxP3zMMw8jMzDTuu+8+o27duoafn58RHR1t9OnTx/j555+tMS+99JLRtGlTIyAgwGjQoIExZ84cY9myZRc8weXgwYNGjx49jNDQUEOS9f4XewKMYRjG559/bnTt2tUIDg42AgMDjWuvvdb43//+V66f48WeiFOazZs3GwMHDjRiY2MNPz8/IywszGjfvr3x5JNPGtnZ2aX+jF577TWjWbNmhp+fnyHJmDFjhvVcef7epk6darRt29aIiIiw/gwnTJhgnDhxoly5AwDgbb788ktj4MCBRq1atQxfX18jOjraGDBggLF169YLYs89Ye/48eMlnvu7M2fOGBMnTjSio6ON6tWrG9dee63x5ZdfGuHh4caECROscSU9fS84OLhc9ylv/VSep++dc/bsWWPlypVG165djcjISMPX19eoWbOm0atXL2PVqlXWJ/+WVHtNmzbNiIuLM6pVq3bB2N555x2jS5cuRlhYmBEQEGDUq1fPGDhwoPHJJ58YhmEYf/zxh5GUlGQ0a9bMCA4ONkJCQoxWrVoZ8+fPt9azAFzHZBgXWRcCAHa0YsUKDR8+XNu2bStxKjUAAAAqZuvWrbruuuv06quvasiQIa5OBwAqjOV7AAAAAODm1q9fry+//FJt2rRRYGCgfvjhB82dO1eNGzcu8eElAODuaEoBAAAAgJsLCwvTxx9/rGeeeUY5OTmKiopSr169NGfOHJsn5QGAJ2H5HgAAAAAAAJzOPo9pAAAAAAAAACqAphQAAAAAAACcjqYUAAAAAAAAnI6NziUVFxfryJEjCg0NlclkcnU6AADAzRmGoZycHMXFxalaNc/+jo86CAAAVIQ96yCaUpKOHDmiOnXquDoNAADgYQ4fPqzatWu7Oo1LQh0EAAAqwx51EE0pSaGhoZL++oGGhYW5JIdmzZrp6NGjio2N1c8//+ySHAAAQPlkZ2erTp061hrCk7lDHeQOqMUAACgfe9ZBNKUk61T1sLAwlxVj56a8VatWzasLQgAAPElVWO7mDnWQO6AWAwCgYuxRB3n2JggAAAAAAADwSDSlPFDXrl11+eWXq2vXrq5OBQAAwOtQiwEAYB8s3/NAv/zyi9LT05WVleXqVAAAALwOtRgAAPZBU8pNhISEKDQ0VCEhIXaNBQBPU1RUpMLCQlenAS/n5+cnHx8fV6cBJ6IWA1DVUWOhIpxVC9GUchMVecoLT4QBUBUZhqGMjAz9+eefrk4FkCTVqFFDMTExVWIzc5SNWgxAVUWNhcpyRi1EUwoA4BbOFUvR0dEKCgqiEQCXMQxDp06d0rFjxyRJsbGxLs4IAIDKo8ZCRTmzFqIpBQBwuaKiImuxZDabXZ0OoMDAQEnSsWPHFB0dzVI+AIBHosZCZTmrFuLpewAAlzu3v0FQUJCLMwH+z7nfR/bfAAB4KmosXApn1ELMlHIT999/vzIzMxUREaEnn3yy1NiFCxcqJydHoaGhGjNmjJMyBADHYzo53Am/j96FWgxAVca/01AZzvi9MRmGYTj8Lm4uOztb4eHhysrKUlhYmEtyqF27ttLT0xUfH6+0tDS7xQKAJzhz5owOHDighIQEVa9e3dXpAJJK/710h9rBXqrSWC4FtRiAqogaC5eipN8fe9YOLN8DAMDNbdq0SSaTyfrUnBUrVqhGjRoOv2/nzp01fvx4h9+nPJKTk3XllVe6Og0AAOABDh48KJPJpB07dpT7M46oryqThyOv445YvueBXnrpJZ05c4ZON4Aqb926dU69X2JiYoXik5KStHLlSkmSj4+P4uLi1KdPH82ePVsRERGOSFGSNHjwYPXu3dtu19u0aZO6dOmizMxMm2JszZo18vPzs9t9SvPf//5XCxYs0Pfff6+ioiI1aNBAAwcO1JgxYxQZGanJkydr7Nix1vikpCT9+eefeuedd5ySH/B31GIAPJ2711iSdPjwYSUnJ+vDDz/UiRMnFBsbq5tvvlmPPPJImZu216lTR0ePHlVUVFS572fv+qoifv31V82aNUvr16/X8ePHFRcXp2uvvVaTJk1S27ZtLxhPSbWbJ6Ip5YF69Ojh6hQAAP9fYmKili9frrNnz+qnn37SiBEj9Oeff+q1115z2D0DAwOtT0RxpMjISIffQ5KmT5+uJ554QhMmTNDs2bMVFxenffv26fnnn9crr7yi++67TyEhIQoJCXFKPkBZqMUAwLF+++03tW/fXk2aNNFrr72mhIQE7d69W/fff78+/PBDffXVVyXWKQUFBfL391dMTEyF7ums+up83377rbp166YWLVpoyZIlatasmXJycvTuu+9q0qRJ2rx5s3x8fCo8Hk/B8j0AAC5BQECAYmJiVLt2bfXo0UODBw/Wxx9/bBOzfPlyNW/eXNWrV1ezZs20aNEi67lz07FXr16tDh06qHr16rr88su1adOmEu95senla9euVdu2bVW9enVFRUVpwIAB1nOpqalq27atQkNDFRMToyFDhujYsWPW+3fp0kWSFBERIZPJpKSkJEkXLt/LzMzUHXfcoYiICAUFBalXr17at2/fBXl99NFHat68uUJCQpSYmKijR4+WOJZvvvlGs2fP1tNPP60nn3xSHTp0UP369dW9e3f997//1bBhwyTZLt9LTk7WypUr9e6778pkMslkMll/Xunp6Ro8eLAiIiJkNpt100036eDBg9b7bdq0Sddcc42Cg4NVo0YNXXfddfr9999LzA8AADjfv//9b/n7++vjjz9Wp06dVLduXfXq1UuffPKJ0tPTNX36dGts/fr19fjjjyspKUnh4eG66667Lrrcbe3atWrcuLECAwPVpUsXrVy5stTtEc7VHq+88orq16+v8PBw3XrrrcrJybHGrFu3Th07dlSNGjVkNpt14403av/+/eUep2EYSkpKUuPGjfX555+rT58+atiwoa688krNmDFD7777riTb5Xul1W6GYWjevHlq0KCBAgMDdcUVV+itt96y3i8zM1O33XabatasqcDAQDVu3FjLly8vd76OQFMKAAA7+e2337Ru3TqbJW9Lly7V9OnTNWvWLO3Zs0ezZ8/Www8/bF32d87999+vSZMm6fvvv1eHDh3Ur18/WSyWct33/fff14ABA9SnTx99//33+vTTT9W2bVvr+YKCAj322GP64Ycf9M477+jAgQPW4qVOnTr673//K0nau3evjh49qmefffai90lKStK3336rtWvX6ssvv5RhGOrdu7fNY4JPnTqlp556Sq+88oo+++wzHTp0SJMnTy4x91dffVUhISEaPXr0Rc9fbEr65MmTNWjQIGvD6+jRo+rQoYNOnTqlLl26KCQkRJ999pm2bNlibYwVFBTo7Nmzuvnmm9WpUyft3LlTX375pe6++26eSAQAgBs5efKkPvroI40ePfqCmUsxMTG67bbb9Prrr+vvz2x78skn1aJFC23fvl0PP/zwBdc8ePCgBg4cqJtvvlk7duzQqFGjbBpbJdm/f7/eeecdvffee3rvvfe0efNmzZ0713o+Ly9PEydO1LZt2/Tpp5+qWrVq6t+/v4qLi8s11h07dmj37t2aNGmSqlW7sD1zsTqotNrtoYce0vLly7V48WLt3r1bEyZM0NChQ7V582ZJ0sMPP6yffvpJH374ofbs2aPFixdXaImjI7B8zwMdPXpURUVF8vHxUWxsrKvTAQCv9t577ykkJERFRUU6c+aMJCklJcV6/rHHHtPTTz9tnbmUkJCgn376SUuWLLHOApKkMWPG6J///KckafHixVq3bp2WLVumKVOmlJnDrFmzdOutt2rmzJnWY1dccYX1zyNGjLD+uUGDBnruued0zTXXKDc3VyEhIdbp79HR0SXuS7Bv3z6tXbtWX3zxhTp06CDpr4ZSnTp19M477+iWW26RJBUWFur5559Xw4YNreN69NFHS8x93759atCgQYX2rgoJCVFgYKDy8/NtprKnpqaqWrVqevHFF62NpuXLl6tGjRratGmT2rZtq6ysLN14443W/Jo3b17u+wLnUIsBgOPs27dPhmGU+O/o5s2bKzMzU8ePH1d0dLQkqWvXrjZfgv19lrQkPf/882ratKmefPJJSVLTpk21a9cuzZo1q9RciouLtWLFCoWGhkqSbr/9dn366afWz52r3c5ZtmyZoqOj9dNPP6lFixblGqskNWvWrMzYc3x8fC5au+Xl5SklJUUbNmxQ+/btJf1V923ZskVLlixRp06ddOjQIV111VXWLy/r169f7vs6CjOlPNDVV1+tOnXq6Oqrr3Z1KgDg9bp06aIdO3bo66+/1tixY9WzZ0/rhtzHjx/X4cOHNXLkSOueSCEhIXr88ccvmNp9rniQJF9fX7Vt21Z79uwpVw47duxQt27dSjz//fff66abblK9evUUGhqqzp07S5IOHTpU7nHu2bNHvr6+ateunfWY2WxW06ZNbfIMCgqyNnwkKTY21rpU8GIMw7DbTKXt27fr119/VWhoqPVnHRkZqTNnzmj//v2KjIxUUlKSevbsqb59++rZZ58tdWkhUBJqMQBwnXMzpP5eP/x9hvjF7N2794L/z77mmmvKvFf9+vWtDSnpwrpm//79GjJkiBo0aKCwsDAlJCRIKn+NdbGxVNZPP/2kM2fOqHv37jZ158svv2ytO++9916tXr1aV155paZMmaKtW7de8n0vFU0pAAAuQXBwsBo1aqRWrVrpueeeU35+vnXG0rmp20uXLtWOHTusr127dumrr74q89rlLVBK25QzLy9PPXr0UEhIiFJTU7Vt2za9/fbbkv5a1ldef58if/7xv+d5/ownk8lU4mclqUmTJtq/f7/NEsDKKi4uVps2bWx+1jt27NAvv/yiIUOGSPpr5tSXX36pDh066PXXX1eTJk3K9XcBAACco1GjRjKZTPrpp58uev7nn39WRESEzbKz4ODgUq95sS/BSqtPzrlYXfP3pXl9+/aVxWLR0qVL9fXXX+vrr7+WVP4aq0mTJpJU7i8iS3Mur/fff9+mDvrpp5+s+0r16tVLv//+u8aPH68jR46oW7dupW6z4Aw0pdxEnz59NHDgQPXp08eusQAA55oxY4aeeuopHTlyRLVq1VJ8fLx+++03NWrUyOZ17pu0c/7eGDl79qy2b99e7qncrVq10qeffnrRcz///LNOnDihuXPn6h//+IeaNWt2wcwlf39/SVJRUVGJ97jssst09uxZa7ElSRaLRb/88sslLYEbMmSIcnNzbTZ//7tzm4+ez9/f/4J8W7durX379ik6OvqCn3d4eLg17qqrrtK0adO0detWtWjRQqtWrap0/qg6qMUAwD2YzWZ1795dixYt0unTp23OZWRk6NVXX9XgwYMrNLuoWbNm2rZtm82xb7/99pLytFgs2rNnjx566CF169bNuqywIq688kpddtllevrppy+6D1VpdZBkW7tddtllCggI0KFDhy6og+rUqWONq1mzppKSkpSamqpnnnlGL7zwQoVytjf2lHITS5YscUgsAMC5OnfurMsvv1yzZ8/WwoULlZycrHHjxiksLEy9evVSfn6+vv32W2VmZmrixInWz/3nP/9R48aN1bx5c82fP1+ZmZk2e0GVZsaMGerWrZsaNmyoW2+9VWfPntWHH36oKVOmqG7duvL399eCBQt0zz33aNeuXXrsscdsPl+vXj2ZTCa999576t27twIDAxUSEmIT07hxY91000266667tGTJEoWGhmrq1KmKj4/XTTfdVOmfV7t27TRlyhRNmjRJ6enp6t+/v+Li4vTrr7/q+eefV8eOHXXfffdd8Ln69evro48+0t69e2U2mxUeHq7bbrtNTz75pG666SY9+uijql27tg4dOqQ1a9bo/vvvV2FhoV544QX169dPcXFx2rt3r3755Rfdcccdlc4fVQe1GAC4j4ULF6pDhw7q2bOnHn/8cSUkJGj37t26//77FR8fX+ZeUOcbNWqUUlJS9MADD2jkyJHasWOHVqxYIanyS+fOPen3hRdeUGxsrA4dOqSpU6dW6Bomk0nLly/XDTfcoOuvv14PPvigmjVrptzcXP3vf//Txx9/bN2k/O8uVruFhoZq8uTJmjBhgoqLi9WxY0dlZ2dr69atCgkJ0bBhw/TII4+oTZs2uvzyy5Wfn6/33nvP5ftrMlMKAAA7mzhxopYuXarDhw/rzjvv1IsvvqgVK1aoZcuW6tSpk1asWHHBTKm5c+fqiSee0BVXXKHPP/9c7777brmfhtK5c2e9+eabWrt2ra688kp17drVOqOpZs2aWrFihd58801ddtllmjt3rp566imbz8fHx2vmzJmaOnWqatWqpTFjxlz0PsuXL1ebNm104403qn379jIMQx988EGFNim/mCeeeEKrVq3S119/rZ49e+ryyy/XxIkT1apVK5vN4P/urrvuUtOm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bk2YMEFDhw7V5s2bJUnFxcWqXbu23njjDf3000965JFH9OCDD+qNN96wuc7GjRu1f/9+bdy4UStXrtSKFSu0YsUK6/nk5GTVr1+/3PkXFBTohRdeUHh4uK644opSYx999FHVrFlTI0eOLPf1UTLqIAAASuaJNVZxcbFuv/123X///br88ssrPGbDMPTpp59q7969uv766yv8eU/j8qbU+QzDUH5+vhISEhQTE6P169dbzxUUFGjz5s3q0KGDJKlNmzby8/OziTl69Kh27dpljbmYgIAA6+OXz70AAO4nJSVFtWvXVu3atbVp0yabcwcOHLCeGzt27AWf7devn/X8+VasWGE99/dv3yrr9ttv15YtW3Tw4EH9/vvv+uKLLzR06FCbmLy8PKWkpOill15Sz5491aBBAyUlJWno0KFasmSJJMnPz08zZ87U1VdfrYSEBN12221KSkq6oGCKiIjQwoUL1axZM914443q06ePPv30U+v5qKgoNWzYsMy833vvPYWEhKh69eqaP3++1q9fr6ioqBLjv/jiCy1btkxLly6tyI8HFUAdBABwBmosx9VYTzzxhHx9fTVu3LgKjTUrK0shISHy9/dXnz59tGDBAnXv3r1C1/BELt1T6sEHH1SvXr1Up04d5eTkaPXq1dq0aZPWrVsnk8mk8ePHa/bs2WrcuLEaN26s2bNnKygoyDpVOjw8XCNHjtSkSZNkNpsVGRmpyZMnq2XLltan0HiKtLQ0FRUVycfH56L/4/67goIC65/9/f0dnRoAuEx2drbS09MlyWYPHOmvadjnzp0/U0SSjh8/bj1/vry8POu5U6dOXXKeUVFR6tOnj1auXCnDMNSnT58Lmjs//fSTzpw5c0FxUVBQYDMF/fnnn9eLL76o33//XadPn1ZBQYGuvPJKm89cfvnl8vHxsb6PjY3Vjz/+aH0/ZswYjRkzpsy8u3Tpoh07dujEiRNaunSpBg0apK+//lrR0dEXxObk5Gjo0KFaunRpqY0rlB91kHvZu3evzp49K19fXzVt2rTU2L///xF7fALwRNRYjqmxtm/frmeffVbfffddmcvtzxcaGqodO3YoNzdXn376qSZOnKgGDRqoc+fOFbqOp3FpU+qPP/7Q7bffrqNHjyo8PFytWrXSunXrrL9MU6ZM0enTpzV69GhlZmaqXbt2+vjjjxUaGmq9xvz5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auw//vGPcscCAICSsXwPAAAAAAAATsdMKQ/UoUMH5ebmKiQkxNWpAAAAeJ3+/fsrMzNTERERrk4FAACPRlPKA40ePdrVKQAAAHitBQsWuDoFAACqBJbvAQAAAAAAwOloSgEAAAAAAMDpaEoBAAAAAADA6dhTygMlJycrKytL4eHhSk5OdnU6AAAAXqVfv346fvy4atasqbVr17o6HQAAPBZNKQ/066+/ymKxyGw2uzoVAAAAr/Pdd98pPT1d8fHxrk4FAACPxvI9AAAAAAAAOB0zpdxEamqqQ2IBAABQtrS0NIfEAgCAkrl0ptScOXN09dVXKzQ0VNHR0br55pu1d+9em5ikpCSZTCab17XXXmsTk5+fr7FjxyoqKkrBwcHq168fxQIAAHBr1EEAAMDbubQptXnzZv373//WV199pfXr1+vs2bPq0aOH8vLybOISExN19OhR6+uDDz6wOT9+/Hi9/fbbWr16tbZs2aLc3FzdeOONKioqcuZwAAAAyo06CAAAeDuXLt9bt26dzfvly5crOjpa27dv1/XXX289HhAQoJiYmIteIysrS8uWLdMrr7yiG264QdJfy9vq1KmjTz75RD179nTcAAAAACqJOggAAHg7t9pTKisrS5IUGRlpc3zTpk2Kjo5WjRo11KlTJ82aNUvR0dGSpO3bt6uwsFA9evSwxsfFxalFixbaunXrRYux/Px85efnW99nZ2c7YjgV8uqrryovL0/BwcG67bbbSo1dv369zpw5o+rVq6t79+5OyhAAADiSN9dB7mDmzJnKyspSeHi4ZsyYUWrsihUrrHVbUlKScxIEAKAKcpumlGEYmjhxojp27KgWLVpYj/fq1Uu33HKL6tWrpwMHDujhhx9W165dtX37dgUEBCgjI0P+/v6KiIiwuV6tWrWUkZFx0XvNmTNHM2fOdOh4KurDDz+UxWKR2Wwusym1cuVKayxNKQAAPJ+310HuYOnSpUpPT1d8fHyZTamHHnrIGktTCgCAynObptSYMWO0c+dObdmyxeb44MGDrX9u0aKF2rZtq3r16un999/XgAEDSryeYRgymUwXPTdt2jRNnDjR+j47O1t16tS5xBEAAABUDnUQAADwRm7RlBo7dqzWrl2rzz77TLVr1y41NjY2VvXq1dO+ffskSTExMSooKFBmZqbNt4THjh1Thw4dLnqNgIAABQQE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iXF1KgAAeLRKNaW6d++uZ555Ri+88IIkyWQyKTc3VzNmzFDv3r3tmiAu9PTTT7s6BQAAAK+1ZcsWV6cAAECVUKmm1Pz589WlSxdddtllOnPmjIYMGaJ9+/YpKipKr732mr1zBAAAAAAAQBVTqaZUXFycduzYoddee03fffediouLNXLkSN122202G58DAAAAAAAAF1OpppQkBQYGasSIERoxYoQ98wEAAAAAAIAXqFRT6uWXXy71/B133FGpZFA+r776qvLy8hQcHKzbbrvN1ekAAAB4lZkzZyorK0vh4eGaMWOGq9MBAMBjVaopdd9999m8Lyws1KlTp+Tv76+goCCaUg724YcfymKxyGw205QCAABwsqVLlyo9PV3x8fE0pQAAuATVKvOhzMxMm1dubq727t2rjh07stE5AAAAAAAAylTpPaXO17hxY82dO1dDhw7Vzz//bK/Leo0ZM2bo7Nmz8vUt+6+kIrEAAAAo27vvvquCggL5+/vbNRYAAJTMrl0NHx8fHTlyxJ6X9BqNGzd2SCwAAADK1qZNG4fEAgCAklWqKbV27Vqb94Zh6OjRo1q4cKGuu+46uyQGAAAAAACAqqtSTambb77Z5r3JZFLNmjXVtWtXPf300/bICwAAAAAAAFVYpZpSxcXF9s7D63399dfWvQnatWtXauyBAwdUVFQkHx8fJSQkOClDAACAquu9997T6dOnFRgYqBtvvLHU2B9//FGFhYXy8/NTy5YtnZQhAABVDztlu4kFCxbIYrHIbDaX2ZR6+OGHrbGpqalOyhAAAKDquueee5Senq74+HilpaWVGturV69yxwIAgJJVqik1ceLEcsempKRU5hYAAAAAAACowirVlPr+++/13Xff6ezZs2ratKkk6ZdffpGPj49at25tjTOZTPbJEjZuuOEG5eXlKTg42NWpAAAAeJ1hw4bpzz//VI0aNVydCgAAHq1STam+ffsqNDRUK1euVEREhCQpMzNTw4cP1z/+8Q9NmjTJrknCVlJSkqtTAAAA8FqzZs1ydQoAAFQJ1Srzoaefflpz5syxNqQkKSIiQo8//jhP3wMAAAAAAECZKtWUys7O1h9//HHB8WPHjiknJ6fc1/nss8/Ut29fxcXFyWQy6Z133rE5n5SUJJPJZPO69tprbWLy8/M1duxYRUVFKTg4WP369WPDSQAA4BGohQAA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FrLEWoiIquOiFBHZRevWraHT6SwKnCc1evRo5OTkYPHixcjMzEReXh58fX1x//79x95X9eJQRCy2ubu7W/S39Ru8sLAwAMCpU6ce+rzWnqd6weri4mJR2P39998W+zIdX9XjH/c3jERERGQ/rIUssRYiouq4KEVEdtG4cWP07dsXX375JcrLyy3abV2i18PDAwBQUVFhtv3QoUOYOHEi4uLi0L59e+j1ely7ds2sj7u7u8XjTHl7eyMwMBCHDx82256ZmYm2bds+SiyrYmJi0KRJE6Smplptr8rarl07ZGZmmhVamZmZaNiwIYKCggD886f3xcXFWvutW7dQVFT0WOOx9RoSERGR47AW+n+shYjIFi5KEZHdLFu2DBUVFejWrRs2b96MwsJCFBQU4PPPP0dUVJTVx/j7+8PT0xN79uzBH3/8gZs3bwIAQkNDsW7dOhQUFOCXX37BiBEj4OnpafbYFi1a4MCBA7h69SpKS0ut7n/q1KmYP38+Nm3ahNOnT2P69OnIy8tDUlLSE+f08vLC6tWrsWvXLvTv3x/79+/H+fPncfToUUybNg3jxo0DALzzzju4dOkSJkyYgFOnTmH79u1ISUnB5MmT4eLyz+G4T58+WLduHQ4dOoRff/0VCQkJcHV1fazxGI1G6HQ67Ny5E3/++Sdu3779xNmIiIjoybEWYi1ERDVw/AX/iMiZXLlyRRITE8VoNIqHh4cEBQVJ//79JS0tTesDk8sgi4isWrVKgoODxcXFRbsM8rFjxyQyMlL0er20bt1avv/+e4tLBu/YsUNCQ0PFzc3tkS6D7O7ubvMyyLm5udq20tJSAWA2Zmuys7Nl0KBB4ufnJ3q9XkJDQ+Wtt96SwsJCrU9Nl0G+efOmDBkyRLy9vSU4OFi+/vprq5dBNn29RER8fHxk7dq12v05c+aIwWAQnU7HyyATERHVIdZCrIWIyDadyCN+Kx0REREREREREVEt4X/fIyIiIiIiIiIih+OiFBERERERERERORwXpYiIiIiIiIiIyOG4KEVERERERERERA7HRSkiIiIiIiIiInI4LkoREREREREREZHDcVGKiIiIiIiIiIgcjotSRERERERERETkcFyUIiIiIiIiIiIih+OiFBERERERERERORwXpYiIiIiIiIiIyOG4KEVERERERERERA73P9r94s+iC/kRAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1200x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# Data series\n",
    "x = (replicationsq2['Replication Cite no.']/(2025-replicationsq2['Replication Year']))\n",
    "y = (replicationsq2['Average citations of papers citing original']/(2025-replicationsq2['Replication Year']))\n",
    "\n",
    "# Compute statistics for annotations\n",
    "x_mean, x_median = x.mean(), x.median()\n",
    "y_mean, y_median = y.mean(), y.median()\n",
    "\n",
    "# Create histograms\n",
    "fig, axes = plt.subplots(1, 2, figsize=(12, 6), sharey=False)\n",
    "\n",
    "# Left: Histogram for replications\n",
    "axes[0].hist(x, bins=20, color=(0.6,0.6,0.6), alpha=0.7, label='Replication Cites')\n",
    "axes[0].axvline(x_mean, color='black', linestyle='dotted', linewidth=2, label=f'Mean: {x_mean:.1f}')\n",
    "axes[0].axvline(x_median, color='black', linestyle='dashed', linewidth=2, label=f'Median: {x_median:.1f}')\n",
    "axes[0].set_title('Replication Cites')\n",
    "axes[0].set_xlabel('Citation Count')\n",
    "axes[0].set_ylabel('Frequency')\n",
    "axes[0].legend()\n",
    "\n",
    "# Right: Histogram for originals\n",
    "axes[1].hist(y, bins=20, color=(0.6,0.6,0.6), alpha=0.7, label='Original Cites')\n",
    "axes[1].axvline(y_mean, color='black', linestyle='dotted', linewidth=2, label=f'Mean: {y_mean:.1f}')\n",
    "axes[1].axvline(y_median, color='black', linestyle='dashed', linewidth=2, label=f'Median: {y_median:.1f}')\n",
    "axes[1].set_title('Original Cites')\n",
    "axes[1].set_xlabel('Citation Count')\n",
    "axes[1].legend()\n",
    "\n",
    "# Adjust the y-axis limits to scale histograms similarly\n",
    "max_height = max(axes[0].get_ylim()[1], axes[1].get_ylim()[1])\n",
    "axes[0].set_ylim(0, max_height)\n",
    "axes[1].set_ylim(0, max_height)\n",
    "\n",
    "# Display the plots\n",
    "plt.tight_layout()\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "e7660997-5e2e-413c-ad98-72b8ea0d5c1a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.7182539682539683\n",
      "3.602564102564102\n",
      "7.929029304029303\n",
      "-3.6082112332112324\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "count    395.000000\n",
       "mean       2.503389\n",
       "std        2.485165\n",
       "min        0.000000\n",
       "25%        0.718254\n",
       "50%        1.500000\n",
       "75%        3.602564\n",
       "max        7.929029\n",
       "dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_92dfe caption {\n",
       "  text-align: center;\n",
       "  font-size: 150%;\n",
       "  color: blue;\n",
       "}\n",
       "#T_92dfe td {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_92dfe th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_92dfe .true {\n",
       "  border-right: solid;\n",
       "  border-color: blue;\n",
       "  vertical-align: top;\n",
       "}\n",
       "#T_92dfe_row0_col0, #T_92dfe_row0_col1, #T_92dfe_row0_col2, #T_92dfe_row0_col3, #T_92dfe_row0_col4, #T_92dfe_row1_col0, #T_92dfe_row1_col1, #T_92dfe_row1_col2, #T_92dfe_row1_col3, #T_92dfe_row1_col4, #T_92dfe_row2_col0, #T_92dfe_row2_col1, #T_92dfe_row2_col2, #T_92dfe_row2_col3, #T_92dfe_row2_col4, #T_92dfe_row3_col0, #T_92dfe_row3_col1, #T_92dfe_row3_col2, #T_92dfe_row3_col3, #T_92dfe_row3_col4, #T_92dfe_row4_col0, #T_92dfe_row4_col1, #T_92dfe_row4_col2, #T_92dfe_row4_col3, #T_92dfe_row4_col4, #T_92dfe_row5_col0, #T_92dfe_row5_col1, #T_92dfe_row5_col2, #T_92dfe_row5_col3, #T_92dfe_row5_col4, #T_92dfe_row6_col0, #T_92dfe_row6_col1, #T_92dfe_row6_col2, #T_92dfe_row6_col3, #T_92dfe_row6_col4 {\n",
       "  width: 500px;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_92dfe\">\n",
       "  <caption>Table 3A: Comparing Citations using the Same Original Counterfactual</caption>\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_92dfe_level0_col0\" class=\"col_heading level0 col0\" >(I) Replication citations</th>\n",
       "      <th id=\"T_92dfe_level0_col1\" class=\"col_heading level0 col1\" >(II) Same Original, Average Citations</th>\n",
       "      <th id=\"T_92dfe_level0_col2\" class=\"col_heading level0 col2\" >(III) Same Original, Median Citations</th>\n",
       "      <th id=\"T_92dfe_level0_col3\" class=\"col_heading level0 col3\" >(IV) Ratio, Same Original, Average Citations</th>\n",
       "      <th id=\"T_92dfe_level0_col4\" class=\"col_heading level0 col4\" >(V) Ratio, Same Original, Median Citations</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_92dfe_level0_row0\" class=\"row_heading level0 row0\" >Mean</th>\n",
       "      <td id=\"T_92dfe_row0_col0\" class=\"data row0 col0\" >2.50</td>\n",
       "      <td id=\"T_92dfe_row0_col1\" class=\"data row0 col1\" >4.30</td>\n",
       "      <td id=\"T_92dfe_row0_col2\" class=\"data row0 col2\" >2.17</td>\n",
       "      <td id=\"T_92dfe_row0_col3\" class=\"data row0 col3\" >0.88</td>\n",
       "      <td id=\"T_92dfe_row0_col4\" class=\"data row0 col4\" >1.69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_92dfe_level0_row1\" class=\"row_heading level0 row1\" >Median</th>\n",
       "      <td id=\"T_92dfe_row1_col0\" class=\"data row1 col0\" >1.50</td>\n",
       "      <td id=\"T_92dfe_row1_col1\" class=\"data row1 col1\" >3.38</td>\n",
       "      <td id=\"T_92dfe_row1_col2\" class=\"data row1 col2\" >1.71</td>\n",
       "      <td id=\"T_92dfe_row1_col3\" class=\"data row1 col3\" >0.51</td>\n",
       "      <td id=\"T_92dfe_row1_col4\" class=\"data row1 col4\" >0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_92dfe_level0_row2\" class=\"row_heading level0 row2\" >Min</th>\n",
       "      <td id=\"T_92dfe_row2_col0\" class=\"data row2 col0\" >0.00</td>\n",
       "      <td id=\"T_92dfe_row2_col1\" class=\"data row2 col1\" >0.08</td>\n",
       "      <td id=\"T_92dfe_row2_col2\" class=\"data row2 col2\" >0.08</td>\n",
       "      <td id=\"T_92dfe_row2_col3\" class=\"data row2 col3\" >0.00</td>\n",
       "      <td id=\"T_92dfe_row2_col4\" class=\"data row2 col4\" >0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_92dfe_level0_row3\" class=\"row_heading level0 row3\" >Q.1</th>\n",
       "      <td id=\"T_92dfe_row3_col0\" class=\"data row3 col0\" >0.72</td>\n",
       "      <td id=\"T_92dfe_row3_col1\" class=\"data row3 col1\" >2.16</td>\n",
       "      <td id=\"T_92dfe_row3_col2\" class=\"data row3 col2\" >1.09</td>\n",
       "      <td id=\"T_92dfe_row3_col3\" class=\"data row3 col3\" >0.20</td>\n",
       "      <td id=\"T_92dfe_row3_col4\" class=\"data row3 col4\" >0.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_92dfe_level0_row4\" class=\"row_heading level0 row4\" >Q.3</th>\n",
       "      <td id=\"T_92dfe_row4_col0\" class=\"data row4 col0\" >3.60</td>\n",
       "      <td id=\"T_92dfe_row4_col1\" class=\"data row4 col1\" >5.32</td>\n",
       "      <td id=\"T_92dfe_row4_col2\" class=\"data row4 col2\" >2.62</td>\n",
       "      <td id=\"T_92dfe_row4_col3\" class=\"data row4 col3\" >1.09</td>\n",
       "      <td id=\"T_92dfe_row4_col4\" class=\"data row4 col4\" >2.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_92dfe_level0_row5\" class=\"row_heading level0 row5\" >Max</th>\n",
       "      <td id=\"T_92dfe_row5_col0\" class=\"data row5 col0\" >7.93</td>\n",
       "      <td id=\"T_92dfe_row5_col1\" class=\"data row5 col1\" >38.13</td>\n",
       "      <td id=\"T_92dfe_row5_col2\" class=\"data row5 col2\" >24.47</td>\n",
       "      <td id=\"T_92dfe_row5_col3\" class=\"data row5 col3\" >21.50</td>\n",
       "      <td id=\"T_92dfe_row5_col4\" class=\"data row5 col4\" >21.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_92dfe_level0_row6\" class=\"row_heading level0 row6\" ># Obs.</th>\n",
       "      <td id=\"T_92dfe_row6_col0\" class=\"data row6 col0\" >395</td>\n",
       "      <td id=\"T_92dfe_row6_col1\" class=\"data row6 col1\" >395</td>\n",
       "      <td id=\"T_92dfe_row6_col2\" class=\"data row6 col2\" >395</td>\n",
       "      <td id=\"T_92dfe_row6_col3\" class=\"data row6 col3\" >395</td>\n",
       "      <td id=\"T_92dfe_row6_col4\" class=\"data row6 col4\" >395</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7fd8bf94b340>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Notes: this table is similar to table 3 in the paper but uses winsorized annual replication citation counts. We winsorize values at Quartile 3 + (1.5 * the interquartile range)\n",
      "share mean <1\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.7291139240506329"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "share median <1\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.5113924050632911"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# WINSORIZING OUTLIERS\n",
    "citation_rate_repl=(replicationsq2['Replication Cite no.']/(2025-replicationsq2['Replication Year']))\n",
    "Q1 = citation_rate_repl.quantile(0.25)\n",
    "Q3 = citation_rate_repl.quantile(0.75)\n",
    "print(Q1)\n",
    "print(Q3)\n",
    "# Compute IQR\n",
    "IQR = Q3 - Q1\n",
    "print(Q3+1.5*IQR)\n",
    "print(Q1-1.5*IQR)\n",
    "citation_rate_repl[citation_rate_repl>Q3+1.5*IQR]=Q3+1.5*IQR\n",
    "\n",
    "display(citation_rate_repl.describe())\n",
    "\n",
    "\n",
    "styles = [{'selector': 'caption', 'props': 'text-align: center; font-size: 150%; color: blue'},\n",
    "        {'selector': 'td', 'props': 'text-align: center;'},\n",
    "         {'selector': 'th', 'props': 'text-align: center;'},  \n",
    "         {'selector': '.true', 'props': 'border-right:solid; border-color:blue; vertical-align:top'}]\n",
    "\n",
    "cols = [\"(I) Replication citations\", \"(II) Same Original, Average Citations\", \"(III) Same Original, Median Citations\",\"(IV) Ratio, Same Original, Average Citations\",\"(V) Ratio, Same Original, Median Citations\"]\n",
    "summarydf = pd.DataFrame(columns=cols)\n",
    "summarydf[\"(I) Replication citations\"] = citation_rate_repl.describe()\n",
    "summarydf[\"(III) Same Original, Median Citations\"] = (replicationsq2['Median citations of papers citing original']/(2025-replicationsq2['Replication Year'])).describe()\n",
    "summarydf[\"(II) Same Original, Average Citations\"] = (replicationsq2['Average citations of papers citing original']/(2025-replicationsq2['Replication Year'])).describe()\n",
    "summarydf[\"(IV) Ratio, Same Original, Average Citations\"] = (citation_rate_repl/(replicationsq2['Average citations of papers citing original']/(2025-replicationsq2['Replication Year']))).describe()\n",
    "summarydf[\"(V) Ratio, Same Original, Median Citations\"] = (citation_rate_repl/(replicationsq2['Median citations of papers citing original']/(2025-replicationsq2['Replication Year']))).describe()\n",
    "\n",
    "\n",
    "a=summarydf.T[['mean','50%','min',\t'25%'\t,'75%',\t'max','count']]\n",
    "a=a.round(2)\n",
    "a['count']=a['count'].apply(lambda x: f'{x:.0f}')\n",
    "a=a.rename(columns={'50%': 'Median', 'mean': 'Mean', '25%': 'Q.1', '75%': 'Q.3', 'max': 'Max', 'min': 'Min', 'count': '# Obs.'})\n",
    "display(a.T.style.set_caption(\"Table 3A: Comparing Citations using the Same Original Counterfactual\").format(precision=2).set_table_styles(styles).set_properties(**{'width': '500px'}))\n",
    "print('Notes: this table is similar to table 3 in the paper but uses winsorized annual replication citation counts. We winsorize values at Quartile 3 + (1.5 * the interquartile range)')\n",
    "\n",
    "print('share mean <1')\n",
    "display(np.sum(citation_rate_repl/(replicationsq2['Average citations of papers citing original']/(2025-replicationsq2['Replication Year']))<1)/395)\n",
    "\n",
    "print('share median <1')\n",
    "display(np.sum(citation_rate_repl/(replicationsq2['Median citations of papers citing original']/(2025-replicationsq2['Replication Year']))<1)/395)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "0132f111-09bb-4cf1-8397-a673b0bf5928",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Compared to papers citing original (median)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Replication cited more</th>\n",
       "      <td>0.281013</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Replication cited less</th>\n",
       "      <td>0.718987</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Replication cited the same</th>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Number of papers</th>\n",
       "      <td>395.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                            Compared to papers citing original (median)\n",
       "Replication cited more                                         0.281013\n",
       "Replication cited less                                         0.718987\n",
       "Replication cited the same                                     0.000000\n",
       "Number of papers                                             395.000000"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Compared to papers citing original (median)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Replication cited more</th>\n",
       "      <td>0.493671</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Replication cited less</th>\n",
       "      <td>0.506329</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Replication cited the same</th>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Number of papers</th>\n",
       "      <td>395.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                            Compared to papers citing original (median)\n",
       "Replication cited more                                         0.493671\n",
       "Replication cited less                                         0.506329\n",
       "Replication cited the same                                     0.000000\n",
       "Number of papers                                             395.000000"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# create a nice table that shows frequency of more/less citations - also adds to table 3\n",
    "# for mean\n",
    "diffcites = []\n",
    "morethan = []\n",
    "lessthan = []\n",
    "equal = []\n",
    "for i in range(0, len(replicationsq2['Average citations of papers citing original'])):\n",
    "    diffcites += [replicationsq2['Replication Cite no.'][i]-replicationsq2['Average citations of papers citing original'][i]]\n",
    "for i in diffcites:\n",
    "    if i > 0:\n",
    "        morethan += [i]\n",
    "    elif i < 0:\n",
    "        lessthan += [i]\n",
    "    elif i == 0:\n",
    "        equal += [i]\n",
    "\n",
    "originalshares = {'Replication cited more':(len(morethan)/(len(morethan)+len(lessthan)+len(equal))), 'Replication cited less':(len(lessthan)/(len(morethan)+len(lessthan)+len(equal))),\n",
    "                  'Replication cited the same':(len(equal)/(len(morethan)+len(lessthan)+len(equal))), 'Number of papers': int(len(morethan)+len(lessthan)+len(equal))}\n",
    "moreorless2=pd.DataFrame.from_dict(originalshares, orient='index', columns=[\"Compared to papers citing original (median)\"] )\n",
    "display(moreorless2)\n",
    "\n",
    "# for median\n",
    "diffcites = []\n",
    "morethan = []\n",
    "lessthan = []\n",
    "equal = []\n",
    "for i in range(0, len(replicationsq2['Median citations of papers citing original'])):\n",
    "    diffcites += [replicationsq2['Replication Cite no.'][i]-replicationsq2['Median citations of papers citing original'][i]]\n",
    "for i in diffcites:\n",
    "    if i > 0:\n",
    "        morethan += [i]\n",
    "    elif i < 0:\n",
    "        lessthan += [i]\n",
    "    elif i == 0:\n",
    "        equal += [i]\n",
    "\n",
    "originalshares = {'Replication cited more':(len(morethan)/(len(morethan)+len(lessthan)+len(equal))), 'Replication cited less':(len(lessthan)/(len(morethan)+len(lessthan)+len(equal))),\n",
    "                  'Replication cited the same':(len(equal)/(len(morethan)+len(lessthan)+len(equal))), 'Number of papers': int(len(morethan)+len(lessthan)+len(equal))}\n",
    "moreorless2=pd.DataFrame.from_dict(originalshares, orient='index', columns=[\"Compared to papers citing original (median)\"] )\n",
    "moreorless2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "2a1b383d-dbb1-466d-a378-81c9eaaa5cf4",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:        Ratio Citations   R-squared:                       0.000\n",
      "Model:                            OLS   Adj. R-squared:                  0.000\n",
      "Method:                 Least Squares   F-statistic:                       nan\n",
      "Date:                Fri, 13 Dec 2024   Prob (F-statistic):                nan\n",
      "Time:                        21:00:39   Log-Likelihood:                -901.03\n",
      "No. Observations:                 395   AIC:                             1804.\n",
      "Df Residuals:                     394   BIC:                             1808.\n",
      "Df Model:                           0                                         \n",
      "Covariance Type:                  HC2                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Constant       1.1182      0.119      9.372      0.000       0.884       1.353\n",
      "==============================================================================\n",
      "Omnibus:                      512.480   Durbin-Watson:                   2.014\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):            42549.457\n",
      "Skew:                           6.379   Prob(JB):                         0.00\n",
      "Kurtosis:                      52.219   Cond. No.                         1.00\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors are heteroscedasticity robust (HC2)\n",
      "                         QuantReg Regression Results                          \n",
      "==============================================================================\n",
      "Dep. Variable:        Ratio Citations   Pseudo R-squared:           -6.436e-12\n",
      "Model:                       QuantReg   Bandwidth:                      0.4623\n",
      "Method:                 Least Squares   Sparsity:                        1.465\n",
      "Date:                Fri, 13 Dec 2024   No. Observations:                  395\n",
      "Time:                        21:00:39   Df Residuals:                      394\n",
      "                                        Df Model:                            0\n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Constant       0.5185      0.037     14.069      0.000       0.446       0.591\n",
      "==============================================================================\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:        Ratio Citations   R-squared:                       0.000\n",
      "Model:                            OLS   Adj. R-squared:                  0.000\n",
      "Method:                 Least Squares   F-statistic:                       nan\n",
      "Date:                Fri, 13 Dec 2024   Prob (F-statistic):                nan\n",
      "Time:                        21:00:39   Log-Likelihood:                -1115.8\n",
      "No. Observations:                 395   AIC:                             2234.\n",
      "Df Residuals:                     394   BIC:                             2238.\n",
      "Df Model:                           0                                         \n",
      "Covariance Type:                  HC2                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Constant       2.1891      0.206     10.652      0.000       1.785       2.593\n",
      "==============================================================================\n",
      "Omnibus:                      399.183   Durbin-Watson:                   2.021\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):            12083.618\n",
      "Skew:                           4.519   Prob(JB):                         0.00\n",
      "Kurtosis:                      28.544   Cond. No.                         1.00\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors are heteroscedasticity robust (HC2)\n",
      "                         QuantReg Regression Results                          \n",
      "==============================================================================\n",
      "Dep. Variable:        Ratio Citations   Pseudo R-squared:           -5.540e-13\n",
      "Model:                       QuantReg   Bandwidth:                      0.8611\n",
      "Method:                 Least Squares   Sparsity:                        2.769\n",
      "Date:                Fri, 13 Dec 2024   No. Observations:                  395\n",
      "Time:                        21:00:39   Df Residuals:                      394\n",
      "                                        Df Model:                            0\n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Constant       0.9500      0.070     13.638      0.000       0.813       1.087\n",
      "==============================================================================\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Mean Ratio, Mean Same Original Counterfactual</th>\n",
       "      <th>Median Ratio, Mean Same Original Counterfactual</th>\n",
       "      <th>Mean Ratio, Median Same Original Counterfactual</th>\n",
       "      <th>Median Ratio, Median Same Original Counterfactual</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.118187</td>\n",
       "      <td>0.518519</td>\n",
       "      <td>2.18907</td>\n",
       "      <td>0.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.11931</td>\n",
       "      <td>0.036855</td>\n",
       "      <td>0.205516</td>\n",
       "      <td>0.069661</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.322493</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.473327</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Mean Ratio, Mean Same Original Counterfactual  \\\n",
       "0                                      1.118187   \n",
       "1                                       0.11931   \n",
       "2                                      0.322493   \n",
       "\n",
       "  Median Ratio, Mean Same Original Counterfactual  \\\n",
       "0                                        0.518519   \n",
       "1                                        0.036855   \n",
       "2                                             0.0   \n",
       "\n",
       "  Mean Ratio, Median Same Original Counterfactual  \\\n",
       "0                                         2.18907   \n",
       "1                                        0.205516   \n",
       "2                                             0.0   \n",
       "\n",
       "  Median Ratio, Median Same Original Counterfactual  \n",
       "0                                              0.95  \n",
       "1                                          0.069661  \n",
       "2                                          0.473327  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# regression analysis\n",
    "import statsmodels.api as sm \n",
    "from statsmodels.regression.quantile_regression import QuantReg\n",
    "# prepare data\n",
    "allest2=pd.DataFrame(columns=['Mean Ratio, Mean Same Original Counterfactual', 'Median Ratio, Mean Same Original Counterfactual','Mean Ratio, Median Same Original Counterfactual', 'Median Ratio, Median Same Original Counterfactual'])\n",
    "\n",
    "a=pd.DataFrame()\n",
    "a['Ratio Citations']=replicationsq2['Replication Cite no.']/replicationsq2['Average citations of papers citing original']\n",
    "a['Constant']=1\n",
    "a=a.dropna()\n",
    "\n",
    "x = a['Constant']\n",
    "y=a['Ratio Citations']\n",
    "\n",
    "model = sm.OLS(y, x, missing='drop')\n",
    "results = model.fit(use_t=True, cov_type='HC2')\n",
    "allest2.at[0,'Mean Ratio, Mean Same Original Counterfactual']=results.params[0]\n",
    "allest2.at[1,'Mean Ratio, Mean Same Original Counterfactual']=results.bse[0]\n",
    "hypotheses = 'Constant = 1'\n",
    "t_test = results.t_test(hypotheses)\n",
    "allest2.at[2,'Mean Ratio, Mean Same Original Counterfactual']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "print(results.summary())\n",
    "\n",
    "quantile = 0.5\n",
    "model = sm.QuantReg(y, x)\n",
    "results = model.fit(q=quantile)\n",
    "allest2.at[0,'Median Ratio, Mean Same Original Counterfactual']=results.params[0]\n",
    "allest2.at[1,'Median Ratio, Mean Same Original Counterfactual']=results.bse[0]\n",
    "hypotheses = 'Constant = 1'\n",
    "t_test = results.t_test(hypotheses)\n",
    "allest2.at[2,'Median Ratio, Mean Same Original Counterfactual']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "print(results.summary())\n",
    "\n",
    "# median\n",
    "\n",
    "a=pd.DataFrame()\n",
    "a['Ratio Citations']=replicationsq2['Replication Cite no.']/replicationsq2['Median citations of papers citing original']\n",
    "a['Constant']=1\n",
    "a=a.dropna()\n",
    "x = a['Constant']\n",
    "y=a['Ratio Citations']\n",
    "\n",
    "model = sm.OLS(y, x, missing='drop')\n",
    "results = model.fit(use_t=True, cov_type='HC2')\n",
    "allest2.at[0,'Mean Ratio, Median Same Original Counterfactual']=results.params[0]\n",
    "allest2.at[1,'Mean Ratio, Median Same Original Counterfactual']=results.bse[0]\n",
    "hypotheses = 'Constant = 1'\n",
    "t_test = results.t_test(hypotheses)\n",
    "allest2.at[2,'Mean Ratio, Median Same Original Counterfactual']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "print(results.summary())\n",
    "\n",
    "quantile = 0.5\n",
    "model = sm.QuantReg(y, x)\n",
    "results = model.fit(q=quantile)\n",
    "allest2.at[0,'Median Ratio, Median Same Original Counterfactual']=results.params[0]\n",
    "allest2.at[1,'Median Ratio, Median Same Original Counterfactual']=results.bse[0]\n",
    "hypotheses = 'Constant = 1'\n",
    "t_test = results.t_test(hypotheses)\n",
    "allest2.at[2,'Median Ratio, Median Same Original Counterfactual']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "print(results.summary())\n",
    "\n",
    "display(allest2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "0fca9c87-4051-483c-8d8c-afbb3f554732",
   "metadata": {},
   "outputs": [],
   "source": [
    "#Q3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "a2a8abd9-11e6-4b73-b317-9034dcbc83e4",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>EID replication</th>\n",
       "      <th>replication</th>\n",
       "      <th>Confirmed (1,0)</th>\n",
       "      <th>Disconfirmed (1,0)</th>\n",
       "      <th>Mixed/Unclear (1,0)</th>\n",
       "      <th>Replication Cite no.</th>\n",
       "      <th>Replication Year</th>\n",
       "      <th>Replication authors ID</th>\n",
       "      <th>Replication authors Name</th>\n",
       "      <th>Replication page count</th>\n",
       "      <th>...</th>\n",
       "      <th>Page length of papers citing original</th>\n",
       "      <th>nr authors of papers citing original</th>\n",
       "      <th>Average citations of papers citing original</th>\n",
       "      <th>Median citations of papers citing original</th>\n",
       "      <th>Average pages of papers citing original</th>\n",
       "      <th>Median pages of papers citing original</th>\n",
       "      <th>Average citations of papers citing original (with pages only)</th>\n",
       "      <th>Median citations of papers citing original (with pages only)</th>\n",
       "      <th>Average nr authors of papers citing original</th>\n",
       "      <th>Median nr authors of papers citing original</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2-s2.0-84945239824</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>221.0</td>\n",
       "      <td>2015</td>\n",
       "      <td>[56429410400, 23007364800]</td>\n",
       "      <td>[Abascal M., Baldassarri D.]</td>\n",
       "      <td>61.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[nan, 23.0, 22.0, 26.0, 18.0, 18.0, 26.0, nan,...</td>\n",
       "      <td>[1, 1, 2, 3, 2, 2, 2, 3, 2, 2, 3, 1, 2, 1, 1, ...</td>\n",
       "      <td>28.547771</td>\n",
       "      <td>16.0</td>\n",
       "      <td>19.758170</td>\n",
       "      <td>19.0</td>\n",
       "      <td>28.764706</td>\n",
       "      <td>16.0</td>\n",
       "      <td>2.130719</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2-s2.0-84862603811</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>2012</td>\n",
       "      <td>[6603457657, 54682154400]</td>\n",
       "      <td>[Abrevaya J., Puzzello L.]</td>\n",
       "      <td>13.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[nan, 105.0, 5.0, 25.0, 5.0, 9.0, nan, nan, 59.0]</td>\n",
       "      <td>[1, 2, 1, 2, 3, 4, 2, 2, 1]</td>\n",
       "      <td>14.888889</td>\n",
       "      <td>8.0</td>\n",
       "      <td>34.666667</td>\n",
       "      <td>17.0</td>\n",
       "      <td>10.166667</td>\n",
       "      <td>6.5</td>\n",
       "      <td>2.166667</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2-s2.0-74749088503</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>203.0</td>\n",
       "      <td>2010</td>\n",
       "      <td>[14055611300, 15022069100]</td>\n",
       "      <td>[Adams C.P., Brantner V.V.]</td>\n",
       "      <td>12.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[3.0, 10.0, 24.0, 6.0, 9.0, 4.0, nan, 11.0, 8....</td>\n",
       "      <td>[2, 2, 2, 2, 5, 3, 2, 2, 1, 11, 3, 2, 4, 1, 2,...</td>\n",
       "      <td>56.787879</td>\n",
       "      <td>21.0</td>\n",
       "      <td>12.739496</td>\n",
       "      <td>10.0</td>\n",
       "      <td>58.747899</td>\n",
       "      <td>21.0</td>\n",
       "      <td>3.176471</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2-s2.0-28844506216</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>2006</td>\n",
       "      <td>[6701392125, 7004557832, 55665967500]</td>\n",
       "      <td>[Agell J., Ohlsson H., Thoursie P.S.]</td>\n",
       "      <td>8.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[12, 29, 31, 11, 14, 3]</td>\n",
       "      <td>[2, 1, 2, 3, 2, 2]</td>\n",
       "      <td>42.500000</td>\n",
       "      <td>29.0</td>\n",
       "      <td>16.666667</td>\n",
       "      <td>13.0</td>\n",
       "      <td>42.500000</td>\n",
       "      <td>29.0</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2-s2.0-85043469203</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>24.0</td>\n",
       "      <td>2019</td>\n",
       "      <td>[55372664800, 55974760200, 22953479300]</td>\n",
       "      <td>[Agovino M., Bartoletto S., Garofalo A.]</td>\n",
       "      <td>21.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[13, 11, 8, 17, 22, 16, 32]</td>\n",
       "      <td>[5, 2, 5, 1, 2, 4, 1]</td>\n",
       "      <td>39.142857</td>\n",
       "      <td>8.0</td>\n",
       "      <td>17.000000</td>\n",
       "      <td>16.0</td>\n",
       "      <td>39.142857</td>\n",
       "      <td>8.0</td>\n",
       "      <td>2.857143</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>423</th>\n",
       "      <td>2-s2.0-84922596764</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2015</td>\n",
       "      <td>[55743639500]</td>\n",
       "      <td>[Zhou M.]</td>\n",
       "      <td>21.0</td>\n",
       "      <td>...</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424</th>\n",
       "      <td>2-s2.0-0003300715</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>354.0</td>\n",
       "      <td>2001</td>\n",
       "      <td>[8217375200]</td>\n",
       "      <td>[Zhou X.]</td>\n",
       "      <td>13.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[25, 67, 35, 28, 32, 25, 30, 40, 97]</td>\n",
       "      <td>[2, 2, 2, 3, 1, 3, 1, 3, 2]</td>\n",
       "      <td>455.888889</td>\n",
       "      <td>315.0</td>\n",
       "      <td>42.111111</td>\n",
       "      <td>32.0</td>\n",
       "      <td>455.888889</td>\n",
       "      <td>315.0</td>\n",
       "      <td>2.111111</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>425</th>\n",
       "      <td>2-s2.0-1142268816</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>29.0</td>\n",
       "      <td>2004</td>\n",
       "      <td>[57220597092, 7004783779, 6602124920]</td>\n",
       "      <td>[Zhu A., Ash M., Pollin R.]</td>\n",
       "      <td>9.0</td>\n",
       "      <td>...</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>426</th>\n",
       "      <td>2-s2.0-84885967533</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>9.0</td>\n",
       "      <td>2013</td>\n",
       "      <td>[6506949090, 55894136200, 57486346800]</td>\n",
       "      <td>[Ziegelmeyer A., March C., Krugel S.]</td>\n",
       "      <td>10.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[9, 10, 34, 10, 11]</td>\n",
       "      <td>[3, 2, 1, 3, 3]</td>\n",
       "      <td>39.400000</td>\n",
       "      <td>11.0</td>\n",
       "      <td>14.800000</td>\n",
       "      <td>10.0</td>\n",
       "      <td>39.400000</td>\n",
       "      <td>11.0</td>\n",
       "      <td>2.400000</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>427</th>\n",
       "      <td>2-s2.0-84860186774</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>35.0</td>\n",
       "      <td>2012</td>\n",
       "      <td>[6506949090, 51864380900, 23397900200]</td>\n",
       "      <td>[Ziegelmeyer A., Schmelz K., Ploner M.]</td>\n",
       "      <td>18.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[22, 50, 15, 19, 36, 28, 22, 13, 31, 9, 58, 29...</td>\n",
       "      <td>[1, 2, 2, 1, 1, 1, 5, 1, 3, 4, 2, 2, 1, 3, 2, ...</td>\n",
       "      <td>56.454545</td>\n",
       "      <td>24.5</td>\n",
       "      <td>22.954545</td>\n",
       "      <td>20.5</td>\n",
       "      <td>56.454545</td>\n",
       "      <td>24.5</td>\n",
       "      <td>2.045455</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>428 rows × 27 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        EID replication  replication  Confirmed (1,0)  Disconfirmed (1,0)  \\\n",
       "0    2-s2.0-84945239824          NaN                0                   1   \n",
       "1    2-s2.0-84862603811          NaN                0                   1   \n",
       "2    2-s2.0-74749088503          NaN                0                   0   \n",
       "3    2-s2.0-28844506216          NaN                0                   1   \n",
       "4    2-s2.0-85043469203          NaN                0                   0   \n",
       "..                  ...          ...              ...                 ...   \n",
       "423  2-s2.0-84922596764          NaN                0                   1   \n",
       "424   2-s2.0-0003300715          NaN                0                   1   \n",
       "425   2-s2.0-1142268816          NaN                0                   1   \n",
       "426  2-s2.0-84885967533          NaN                0                   0   \n",
       "427  2-s2.0-84860186774          NaN                0                   0   \n",
       "\n",
       "     Mixed/Unclear (1,0)  Replication Cite no.  Replication Year  \\\n",
       "0                      0                 221.0              2015   \n",
       "1                      0                  17.0              2012   \n",
       "2                      1                 203.0              2010   \n",
       "3                      0                  50.0              2006   \n",
       "4                      1                  24.0              2019   \n",
       "..                   ...                   ...               ...   \n",
       "423                    0                   2.0              2015   \n",
       "424                    0                 354.0              2001   \n",
       "425                    0                  29.0              2004   \n",
       "426                    1                   9.0              2013   \n",
       "427                    1                  35.0              2012   \n",
       "\n",
       "                      Replication authors ID  \\\n",
       "0                 [56429410400, 23007364800]   \n",
       "1                  [6603457657, 54682154400]   \n",
       "2                 [14055611300, 15022069100]   \n",
       "3      [6701392125, 7004557832, 55665967500]   \n",
       "4    [55372664800, 55974760200, 22953479300]   \n",
       "..                                       ...   \n",
       "423                            [55743639500]   \n",
       "424                             [8217375200]   \n",
       "425    [57220597092, 7004783779, 6602124920]   \n",
       "426   [6506949090, 55894136200, 57486346800]   \n",
       "427   [6506949090, 51864380900, 23397900200]   \n",
       "\n",
       "                     Replication authors Name  Replication page count  ...  \\\n",
       "0                [Abascal M., Baldassarri D.]                    61.0  ...   \n",
       "1                  [Abrevaya J., Puzzello L.]                    13.0  ...   \n",
       "2                 [Adams C.P., Brantner V.V.]                    12.0  ...   \n",
       "3       [Agell J., Ohlsson H., Thoursie P.S.]                     8.0  ...   \n",
       "4    [Agovino M., Bartoletto S., Garofalo A.]                    21.0  ...   \n",
       "..                                        ...                     ...  ...   \n",
       "423                                 [Zhou M.]                    21.0  ...   \n",
       "424                                 [Zhou X.]                    13.0  ...   \n",
       "425               [Zhu A., Ash M., Pollin R.]                     9.0  ...   \n",
       "426     [Ziegelmeyer A., March C., Krugel S.]                    10.0  ...   \n",
       "427   [Ziegelmeyer A., Schmelz K., Ploner M.]                    18.0  ...   \n",
       "\n",
       "                 Page length of papers citing original  \\\n",
       "0    [nan, 23.0, 22.0, 26.0, 18.0, 18.0, 26.0, nan,...   \n",
       "1    [nan, 105.0, 5.0, 25.0, 5.0, 9.0, nan, nan, 59.0]   \n",
       "2    [3.0, 10.0, 24.0, 6.0, 9.0, 4.0, nan, 11.0, 8....   \n",
       "3                              [12, 29, 31, 11, 14, 3]   \n",
       "4                          [13, 11, 8, 17, 22, 16, 32]   \n",
       "..                                                 ...   \n",
       "423                                               None   \n",
       "424               [25, 67, 35, 28, 32, 25, 30, 40, 97]   \n",
       "425                                               None   \n",
       "426                                [9, 10, 34, 10, 11]   \n",
       "427  [22, 50, 15, 19, 36, 28, 22, 13, 31, 9, 58, 29...   \n",
       "\n",
       "                  nr authors of papers citing original  \\\n",
       "0    [1, 1, 2, 3, 2, 2, 2, 3, 2, 2, 3, 1, 2, 1, 1, ...   \n",
       "1                          [1, 2, 1, 2, 3, 4, 2, 2, 1]   \n",
       "2    [2, 2, 2, 2, 5, 3, 2, 2, 1, 11, 3, 2, 4, 1, 2,...   \n",
       "3                                   [2, 1, 2, 3, 2, 2]   \n",
       "4                                [5, 2, 5, 1, 2, 4, 1]   \n",
       "..                                                 ...   \n",
       "423                                               None   \n",
       "424                        [2, 2, 2, 3, 1, 3, 1, 3, 2]   \n",
       "425                                               None   \n",
       "426                                    [3, 2, 1, 3, 3]   \n",
       "427  [1, 2, 2, 1, 1, 1, 5, 1, 3, 4, 2, 2, 1, 3, 2, ...   \n",
       "\n",
       "    Average citations of papers citing original  \\\n",
       "0                                     28.547771   \n",
       "1                                     14.888889   \n",
       "2                                     56.787879   \n",
       "3                                     42.500000   \n",
       "4                                     39.142857   \n",
       "..                                          ...   \n",
       "423                                         NaN   \n",
       "424                                  455.888889   \n",
       "425                                         NaN   \n",
       "426                                   39.400000   \n",
       "427                                   56.454545   \n",
       "\n",
       "    Median citations of papers citing original  \\\n",
       "0                                         16.0   \n",
       "1                                          8.0   \n",
       "2                                         21.0   \n",
       "3                                         29.0   \n",
       "4                                          8.0   \n",
       "..                                         ...   \n",
       "423                                        NaN   \n",
       "424                                      315.0   \n",
       "425                                        NaN   \n",
       "426                                       11.0   \n",
       "427                                       24.5   \n",
       "\n",
       "    Average pages of papers citing original  \\\n",
       "0                                 19.758170   \n",
       "1                                 34.666667   \n",
       "2                                 12.739496   \n",
       "3                                 16.666667   \n",
       "4                                 17.000000   \n",
       "..                                      ...   \n",
       "423                                     NaN   \n",
       "424                               42.111111   \n",
       "425                                     NaN   \n",
       "426                               14.800000   \n",
       "427                               22.954545   \n",
       "\n",
       "     Median pages of papers citing original  \\\n",
       "0                                      19.0   \n",
       "1                                      17.0   \n",
       "2                                      10.0   \n",
       "3                                      13.0   \n",
       "4                                      16.0   \n",
       "..                                      ...   \n",
       "423                                     NaN   \n",
       "424                                    32.0   \n",
       "425                                     NaN   \n",
       "426                                    10.0   \n",
       "427                                    20.5   \n",
       "\n",
       "    Average citations of papers citing original (with pages only)  \\\n",
       "0                                            28.764706              \n",
       "1                                            10.166667              \n",
       "2                                            58.747899              \n",
       "3                                            42.500000              \n",
       "4                                            39.142857              \n",
       "..                                                 ...              \n",
       "423                                                NaN              \n",
       "424                                         455.888889              \n",
       "425                                                NaN              \n",
       "426                                          39.400000              \n",
       "427                                          56.454545              \n",
       "\n",
       "    Median citations of papers citing original (with pages only)  \\\n",
       "0                                                 16.0             \n",
       "1                                                  6.5             \n",
       "2                                                 21.0             \n",
       "3                                                 29.0             \n",
       "4                                                  8.0             \n",
       "..                                                 ...             \n",
       "423                                                NaN             \n",
       "424                                              315.0             \n",
       "425                                                NaN             \n",
       "426                                               11.0             \n",
       "427                                               24.5             \n",
       "\n",
       "    Average nr authors of papers citing original  \\\n",
       "0                                       2.130719   \n",
       "1                                       2.166667   \n",
       "2                                       3.176471   \n",
       "3                                       2.000000   \n",
       "4                                       2.857143   \n",
       "..                                           ...   \n",
       "423                                          NaN   \n",
       "424                                     2.111111   \n",
       "425                                          NaN   \n",
       "426                                     2.400000   \n",
       "427                                     2.045455   \n",
       "\n",
       "     Median nr authors of papers citing original  \n",
       "0                                            2.0  \n",
       "1                                            2.0  \n",
       "2                                            3.0  \n",
       "3                                            2.0  \n",
       "4                                            2.0  \n",
       "..                                           ...  \n",
       "423                                          NaN  \n",
       "424                                          2.0  \n",
       "425                                          NaN  \n",
       "426                                          3.0  \n",
       "427                                          2.0  \n",
       "\n",
       "[428 rows x 27 columns]"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "replications=pd.read_pickle('replications')\n",
    "originals=pd.read_pickle('originals')\n",
    "replications"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "8520ecc7-08f1-4e03-ba41-0d8f9a0c25d6",
   "metadata": {},
   "outputs": [],
   "source": [
    "# get all other publications of replication authors in same year of replication\n",
    "from pybliometrics.scopus import AuthorRetrieval #gets author retrieval API\n",
    "allpubcites =[]\n",
    "allnumpages =[]\n",
    "allnumauthors =[]\n",
    "\n",
    "\n",
    "for j in range(0, len(replications)):\n",
    "    pubcites =[]\n",
    "    numpages =[]\n",
    "    numauthors =[]\n",
    "\n",
    "    for i in range(0, len(replications.loc[j,'Replication authors ID'])): #iterates through each author for each replication paper \n",
    "        try:\n",
    "            authid=replications.loc[j,'Replication authors ID'][i]\n",
    "            au = AuthorRetrieval(authid, refresh = 2) #gets author information from author API\n",
    "    \n",
    "            df = pd.DataFrame(au.get_documents(refresh=au.document_count)) #gets all paper from the author in the iteration\n",
    "            df=df[~df['eid'].isin (replications['EID replication'])]\n",
    "            df=df[df['eid']!=\"2-s2.0-77950474717\"] # to exclude a book (lots of pages, leading to outlier] that was miscategorized as article\n",
    "            df=df[df['coverDate'].str[:4].astype(int)==replications.loc[j,'Replication Year']]\n",
    "            df=df[df['subtype'].isin(['ar', 're', 'no']) ] # only articles to avoid errata etc\n",
    "            a=pd.DataFrame()\n",
    "            a=df['pageRange'].str.replace('.','').str.replace('x','10').str.replace('R','').str.replace('E','').str.replace('e','').str.replace('+I','').str.replace('F','').str.replace('S','').str.replace('i','').str.split('-', expand=True)\n",
    "            \n",
    "            if 1 in a.columns: # if not it means all pages are missing\n",
    "                a['count']=1+a[a[1].notna() & a[0].notna()][1].astype(int)-a[a[1].notna() & a[0].notna()][0].astype(int)\n",
    "                try:\n",
    "                    a.loc[a['count']<0,1]=round(a[a['count']<0][0].astype(int),-(a[a['count']<0][0].str.len()-1))+a[a['count']<0][1].astype(int)\n",
    "                except:\n",
    "                    pass\n",
    "                \n",
    "                try:\n",
    "                    a['count']=1+a[a[1].notna()][1].astype(int)-a[a[1].notna()][0].astype(int)\n",
    "                except:\n",
    "                    pass\n",
    "                a.loc[a[1].isna() & a[0].notna(),'count']=1\n",
    "                a.loc[a[1].notna() & a[0].isna(),'count']=1\n",
    "                a['cites']=df['citedby_count']\n",
    "                a['nr authors']=df['author_count'].astype(int)\n",
    "            \n",
    "            else:\n",
    "                a['cites']=df['citedby_count']\n",
    "                a['count']=None\n",
    "                a['nr authors']=df['author_count'].astype(int)\n",
    "            \n",
    "            pubcites +=[a['cites'].to_list()] #adds citation count list\n",
    "            numpages +=[a['count'].to_list()]\n",
    "            numauthors +=[a['nr authors'].to_list()]\n",
    "                \n",
    "        except:\n",
    "            pubcites +=[None]\n",
    "            numpages +=[None]\n",
    "            numauthors +=[None]\n",
    "    allpubcites +=[pubcites]\n",
    "    allnumpages +=[numpages]\n",
    "    allnumauthors +=[numauthors]\n",
    "\n",
    "\n",
    "\n",
    "replications['Replication authors nrauthors'] = allnumauthors\n",
    "replications['Replication authors citations'] = allpubcites\n",
    "replications['Replication authors page count'] = allnumpages\n",
    "\n",
    "#replications\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "251265fc-4996-4f84-8226-c24949f961af",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>EID replication</th>\n",
       "      <th>replication</th>\n",
       "      <th>Confirmed (1,0)</th>\n",
       "      <th>Disconfirmed (1,0)</th>\n",
       "      <th>Mixed/Unclear (1,0)</th>\n",
       "      <th>Replication Cite no.</th>\n",
       "      <th>Replication Year</th>\n",
       "      <th>Replication authors ID</th>\n",
       "      <th>Replication authors Name</th>\n",
       "      <th>Replication page count</th>\n",
       "      <th>...</th>\n",
       "      <th>Replication authors citations</th>\n",
       "      <th>Replication authors page count</th>\n",
       "      <th>Average replication authors citations</th>\n",
       "      <th>Average replication authors citations (for those with pages only)</th>\n",
       "      <th>Average replication authors page count</th>\n",
       "      <th>Average replication authors nr authors</th>\n",
       "      <th>Median replication authors citations</th>\n",
       "      <th>Median replication authors citations (for those with pages only)</th>\n",
       "      <th>Median replication authors page count</th>\n",
       "      <th>Median replication authors nr authors</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2-s2.0-84945239824</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>221.0</td>\n",
       "      <td>2015</td>\n",
       "      <td>[56429410400, 23007364800]</td>\n",
       "      <td>[Abascal M., Baldassarri D.]</td>\n",
       "      <td>61.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[[110], [78, 42]]</td>\n",
       "      <td>[[25], [41, 59]]</td>\n",
       "      <td>[110.0, 60.0]</td>\n",
       "      <td>[110.0, 60.0]</td>\n",
       "      <td>[25.0, 50.0]</td>\n",
       "      <td>[1.0, 1.5]</td>\n",
       "      <td>[110.0, 60.0]</td>\n",
       "      <td>[110.0, 60.0]</td>\n",
       "      <td>[25.0, 50.0]</td>\n",
       "      <td>[1.0, 1.5]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2-s2.0-84862603811</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>2012</td>\n",
       "      <td>[6603457657, 54682154400]</td>\n",
       "      <td>[Abrevaya J., Puzzello L.]</td>\n",
       "      <td>13.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[[37], []]</td>\n",
       "      <td>[[6], []]</td>\n",
       "      <td>[37.0, None]</td>\n",
       "      <td>[37.0, None]</td>\n",
       "      <td>[6.0, None]</td>\n",
       "      <td>[2.0, None]</td>\n",
       "      <td>[37.0, None]</td>\n",
       "      <td>[37.0, None]</td>\n",
       "      <td>[6.0, None]</td>\n",
       "      <td>[2.0, None]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2-s2.0-74749088503</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>203.0</td>\n",
       "      <td>2010</td>\n",
       "      <td>[14055611300, 15022069100]</td>\n",
       "      <td>[Adams C.P., Brantner V.V.]</td>\n",
       "      <td>12.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[[0, 42], []]</td>\n",
       "      <td>[[3, 24], []]</td>\n",
       "      <td>[21.0, None]</td>\n",
       "      <td>[21.0, None]</td>\n",
       "      <td>[13.5, None]</td>\n",
       "      <td>[2.0, None]</td>\n",
       "      <td>[21.0, None]</td>\n",
       "      <td>[21.0, None]</td>\n",
       "      <td>[13.5, None]</td>\n",
       "      <td>[2.0, None]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2-s2.0-28844506216</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>2006</td>\n",
       "      <td>[6701392125, 7004557832, 55665967500]</td>\n",
       "      <td>[Agell J., Ohlsson H., Thoursie P.S.]</td>\n",
       "      <td>8.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[[], [21], []]</td>\n",
       "      <td>[[], [12], []]</td>\n",
       "      <td>[None, 21.0, None]</td>\n",
       "      <td>[None, 21.0, None]</td>\n",
       "      <td>[None, 12.0, None]</td>\n",
       "      <td>[None, 2.0, None]</td>\n",
       "      <td>[None, 21.0, None]</td>\n",
       "      <td>[None, 21.0, None]</td>\n",
       "      <td>[None, 12.0, None]</td>\n",
       "      <td>[None, 2.0, None]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2-s2.0-85043469203</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>24.0</td>\n",
       "      <td>2019</td>\n",
       "      <td>[55372664800, 55974760200, 22953479300]</td>\n",
       "      <td>[Agovino M., Bartoletto S., Garofalo A.]</td>\n",
       "      <td>21.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[[23, 12, 0, 13, 18, 175, 4, 18, 7, 8, 40, 12,...</td>\n",
       "      <td>[[nan, nan, 18.0, 33.0, 24.0, 19.0, 21.0, 14.0...</td>\n",
       "      <td>[29.933333333333334, 6.0, 12.125]</td>\n",
       "      <td>[32.166666666666664, 5.0, 9.333333333333334]</td>\n",
       "      <td>[19.083333333333332, 28.0, 21.166666666666668]</td>\n",
       "      <td>[3.5833333333333335, 4.0, 3.5]</td>\n",
       "      <td>[18.0, 6.0, 10.5]</td>\n",
       "      <td>[15.5, 5.0, 7.5]</td>\n",
       "      <td>[18.5, 28.0, 21.5]</td>\n",
       "      <td>[3.0, 4.0, 3.0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>423</th>\n",
       "      <td>2-s2.0-84922596764</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2015</td>\n",
       "      <td>[55743639500]</td>\n",
       "      <td>[Zhou M.]</td>\n",
       "      <td>21.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[[]]</td>\n",
       "      <td>[[]]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424</th>\n",
       "      <td>2-s2.0-0003300715</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>354.0</td>\n",
       "      <td>2001</td>\n",
       "      <td>[8217375200]</td>\n",
       "      <td>[Zhou X.]</td>\n",
       "      <td>13.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[[]]</td>\n",
       "      <td>[[]]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>425</th>\n",
       "      <td>2-s2.0-1142268816</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>29.0</td>\n",
       "      <td>2004</td>\n",
       "      <td>[57220597092, 7004783779, 6602124920]</td>\n",
       "      <td>[Zhu A., Ash M., Pollin R.]</td>\n",
       "      <td>9.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[[], [151, 32], [66]]</td>\n",
       "      <td>[[], [22, 21], [19]]</td>\n",
       "      <td>[None, 91.5, 66.0]</td>\n",
       "      <td>[None, 91.5, 66.0]</td>\n",
       "      <td>[None, 21.5, 19.0]</td>\n",
       "      <td>[None, 2.0, 3.0]</td>\n",
       "      <td>[None, 91.5, 66.0]</td>\n",
       "      <td>[None, 91.5, 66.0]</td>\n",
       "      <td>[None, 21.5, 19.0]</td>\n",
       "      <td>[None, 2.0, 3.0]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>426</th>\n",
       "      <td>2-s2.0-84885967533</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>9.0</td>\n",
       "      <td>2013</td>\n",
       "      <td>[6506949090, 55894136200, 57486346800]</td>\n",
       "      <td>[Ziegelmeyer A., March C., Krugel S.]</td>\n",
       "      <td>10.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[[], [], []]</td>\n",
       "      <td>[[], [], []]</td>\n",
       "      <td>[None, None, None]</td>\n",
       "      <td>[None, None, None]</td>\n",
       "      <td>[None, None, None]</td>\n",
       "      <td>[None, None, None]</td>\n",
       "      <td>[None, None, None]</td>\n",
       "      <td>[None, None, None]</td>\n",
       "      <td>[None, None, None]</td>\n",
       "      <td>[None, None, None]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>427</th>\n",
       "      <td>2-s2.0-84860186774</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>35.0</td>\n",
       "      <td>2012</td>\n",
       "      <td>[6506949090, 51864380900, 23397900200]</td>\n",
       "      <td>[Ziegelmeyer A., Schmelz K., Ploner M.]</td>\n",
       "      <td>18.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[[12], [], [6, 3, 12, 17]]</td>\n",
       "      <td>[[14], [], [9, 14, 8, 13]]</td>\n",
       "      <td>[12.0, None, 9.5]</td>\n",
       "      <td>[12.0, None, 9.5]</td>\n",
       "      <td>[14.0, None, 11.0]</td>\n",
       "      <td>[3.0, None, 3.0]</td>\n",
       "      <td>[12.0, None, 9.0]</td>\n",
       "      <td>[12.0, None, 9.0]</td>\n",
       "      <td>[14.0, None, 11.0]</td>\n",
       "      <td>[3.0, None, 3.0]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>428 rows × 38 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        EID replication  replication  Confirmed (1,0)  Disconfirmed (1,0)  \\\n",
       "0    2-s2.0-84945239824          NaN                0                   1   \n",
       "1    2-s2.0-84862603811          NaN                0                   1   \n",
       "2    2-s2.0-74749088503          NaN                0                   0   \n",
       "3    2-s2.0-28844506216          NaN                0                   1   \n",
       "4    2-s2.0-85043469203          NaN                0                   0   \n",
       "..                  ...          ...              ...                 ...   \n",
       "423  2-s2.0-84922596764          NaN                0                   1   \n",
       "424   2-s2.0-0003300715          NaN                0                   1   \n",
       "425   2-s2.0-1142268816          NaN                0                   1   \n",
       "426  2-s2.0-84885967533          NaN                0                   0   \n",
       "427  2-s2.0-84860186774          NaN                0                   0   \n",
       "\n",
       "     Mixed/Unclear (1,0)  Replication Cite no.  Replication Year  \\\n",
       "0                      0                 221.0              2015   \n",
       "1                      0                  17.0              2012   \n",
       "2                      1                 203.0              2010   \n",
       "3                      0                  50.0              2006   \n",
       "4                      1                  24.0              2019   \n",
       "..                   ...                   ...               ...   \n",
       "423                    0                   2.0              2015   \n",
       "424                    0                 354.0              2001   \n",
       "425                    0                  29.0              2004   \n",
       "426                    1                   9.0              2013   \n",
       "427                    1                  35.0              2012   \n",
       "\n",
       "                      Replication authors ID  \\\n",
       "0                 [56429410400, 23007364800]   \n",
       "1                  [6603457657, 54682154400]   \n",
       "2                 [14055611300, 15022069100]   \n",
       "3      [6701392125, 7004557832, 55665967500]   \n",
       "4    [55372664800, 55974760200, 22953479300]   \n",
       "..                                       ...   \n",
       "423                            [55743639500]   \n",
       "424                             [8217375200]   \n",
       "425    [57220597092, 7004783779, 6602124920]   \n",
       "426   [6506949090, 55894136200, 57486346800]   \n",
       "427   [6506949090, 51864380900, 23397900200]   \n",
       "\n",
       "                     Replication authors Name  Replication page count  ...  \\\n",
       "0                [Abascal M., Baldassarri D.]                    61.0  ...   \n",
       "1                  [Abrevaya J., Puzzello L.]                    13.0  ...   \n",
       "2                 [Adams C.P., Brantner V.V.]                    12.0  ...   \n",
       "3       [Agell J., Ohlsson H., Thoursie P.S.]                     8.0  ...   \n",
       "4    [Agovino M., Bartoletto S., Garofalo A.]                    21.0  ...   \n",
       "..                                        ...                     ...  ...   \n",
       "423                                 [Zhou M.]                    21.0  ...   \n",
       "424                                 [Zhou X.]                    13.0  ...   \n",
       "425               [Zhu A., Ash M., Pollin R.]                     9.0  ...   \n",
       "426     [Ziegelmeyer A., March C., Krugel S.]                    10.0  ...   \n",
       "427   [Ziegelmeyer A., Schmelz K., Ploner M.]                    18.0  ...   \n",
       "\n",
       "                         Replication authors citations  \\\n",
       "0                                    [[110], [78, 42]]   \n",
       "1                                           [[37], []]   \n",
       "2                                        [[0, 42], []]   \n",
       "3                                       [[], [21], []]   \n",
       "4    [[23, 12, 0, 13, 18, 175, 4, 18, 7, 8, 40, 12,...   \n",
       "..                                                 ...   \n",
       "423                                               [[]]   \n",
       "424                                               [[]]   \n",
       "425                              [[], [151, 32], [66]]   \n",
       "426                                       [[], [], []]   \n",
       "427                         [[12], [], [6, 3, 12, 17]]   \n",
       "\n",
       "                        Replication authors page count  \\\n",
       "0                                     [[25], [41, 59]]   \n",
       "1                                            [[6], []]   \n",
       "2                                        [[3, 24], []]   \n",
       "3                                       [[], [12], []]   \n",
       "4    [[nan, nan, 18.0, 33.0, 24.0, 19.0, 21.0, 14.0...   \n",
       "..                                                 ...   \n",
       "423                                               [[]]   \n",
       "424                                               [[]]   \n",
       "425                               [[], [22, 21], [19]]   \n",
       "426                                       [[], [], []]   \n",
       "427                         [[14], [], [9, 14, 8, 13]]   \n",
       "\n",
       "    Average replication authors citations  \\\n",
       "0                           [110.0, 60.0]   \n",
       "1                            [37.0, None]   \n",
       "2                            [21.0, None]   \n",
       "3                      [None, 21.0, None]   \n",
       "4       [29.933333333333334, 6.0, 12.125]   \n",
       "..                                    ...   \n",
       "423                                [None]   \n",
       "424                                [None]   \n",
       "425                    [None, 91.5, 66.0]   \n",
       "426                    [None, None, None]   \n",
       "427                     [12.0, None, 9.5]   \n",
       "\n",
       "    Average replication authors citations (for those with pages only)  \\\n",
       "0                                        [110.0, 60.0]                  \n",
       "1                                         [37.0, None]                  \n",
       "2                                         [21.0, None]                  \n",
       "3                                   [None, 21.0, None]                  \n",
       "4         [32.166666666666664, 5.0, 9.333333333333334]                  \n",
       "..                                                 ...                  \n",
       "423                                             [None]                  \n",
       "424                                             [None]                  \n",
       "425                                 [None, 91.5, 66.0]                  \n",
       "426                                 [None, None, None]                  \n",
       "427                                  [12.0, None, 9.5]                  \n",
       "\n",
       "             Average replication authors page count  \\\n",
       "0                                      [25.0, 50.0]   \n",
       "1                                       [6.0, None]   \n",
       "2                                      [13.5, None]   \n",
       "3                                [None, 12.0, None]   \n",
       "4    [19.083333333333332, 28.0, 21.166666666666668]   \n",
       "..                                              ...   \n",
       "423                                          [None]   \n",
       "424                                          [None]   \n",
       "425                              [None, 21.5, 19.0]   \n",
       "426                              [None, None, None]   \n",
       "427                              [14.0, None, 11.0]   \n",
       "\n",
       "     Average replication authors nr authors  \\\n",
       "0                                [1.0, 1.5]   \n",
       "1                               [2.0, None]   \n",
       "2                               [2.0, None]   \n",
       "3                         [None, 2.0, None]   \n",
       "4            [3.5833333333333335, 4.0, 3.5]   \n",
       "..                                      ...   \n",
       "423                                  [None]   \n",
       "424                                  [None]   \n",
       "425                        [None, 2.0, 3.0]   \n",
       "426                      [None, None, None]   \n",
       "427                        [3.0, None, 3.0]   \n",
       "\n",
       "    Median replication authors citations  \\\n",
       "0                          [110.0, 60.0]   \n",
       "1                           [37.0, None]   \n",
       "2                           [21.0, None]   \n",
       "3                     [None, 21.0, None]   \n",
       "4                      [18.0, 6.0, 10.5]   \n",
       "..                                   ...   \n",
       "423                               [None]   \n",
       "424                               [None]   \n",
       "425                   [None, 91.5, 66.0]   \n",
       "426                   [None, None, None]   \n",
       "427                    [12.0, None, 9.0]   \n",
       "\n",
       "    Median replication authors citations (for those with pages only)  \\\n",
       "0                                        [110.0, 60.0]                 \n",
       "1                                         [37.0, None]                 \n",
       "2                                         [21.0, None]                 \n",
       "3                                   [None, 21.0, None]                 \n",
       "4                                     [15.5, 5.0, 7.5]                 \n",
       "..                                                 ...                 \n",
       "423                                             [None]                 \n",
       "424                                             [None]                 \n",
       "425                                 [None, 91.5, 66.0]                 \n",
       "426                                 [None, None, None]                 \n",
       "427                                  [12.0, None, 9.0]                 \n",
       "\n",
       "    Median replication authors page count  \\\n",
       "0                            [25.0, 50.0]   \n",
       "1                             [6.0, None]   \n",
       "2                            [13.5, None]   \n",
       "3                      [None, 12.0, None]   \n",
       "4                      [18.5, 28.0, 21.5]   \n",
       "..                                    ...   \n",
       "423                                [None]   \n",
       "424                                [None]   \n",
       "425                    [None, 21.5, 19.0]   \n",
       "426                    [None, None, None]   \n",
       "427                    [14.0, None, 11.0]   \n",
       "\n",
       "     Median replication authors nr authors  \n",
       "0                               [1.0, 1.5]  \n",
       "1                              [2.0, None]  \n",
       "2                              [2.0, None]  \n",
       "3                        [None, 2.0, None]  \n",
       "4                          [3.0, 4.0, 3.0]  \n",
       "..                                     ...  \n",
       "423                                 [None]  \n",
       "424                                 [None]  \n",
       "425                       [None, 2.0, 3.0]  \n",
       "426                     [None, None, None]  \n",
       "427                       [3.0, None, 3.0]  \n",
       "\n",
       "[428 rows x 38 columns]"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#this gets the average citations for each author - each author is separated, and the average is calculated\n",
    "import numpy as np\n",
    "\n",
    "averages=[]\n",
    "averagesp=[]\n",
    "averagespages=[]\n",
    "averagesm=[]\n",
    "averagespm=[]\n",
    "averagespagesm=[]\n",
    "averagesauthors=[]\n",
    "averagesauthorsm=[]\n",
    "\n",
    "for i in range(0,len(replications)):\n",
    "    average = []\n",
    "    averagep = []\n",
    "    averagepages = []\n",
    "    averagem = []\n",
    "    averagepm = []\n",
    "    averagepagesm = []\n",
    "    averageauthors=[]\n",
    "    averageauthorsm=[]\n",
    "    for j in range(0,len(replications['Replication authors citations'][i])): \n",
    "        try:\n",
    "        \n",
    "            if len(replications['Replication authors citations'][i][j])>0:\n",
    "                averagecites=[]\n",
    "                L = pd.DataFrame()\n",
    "                L['cites']=replications['Replication authors citations'][i][j]\n",
    "                average+=[L.mean()['cites']]\n",
    "                averagem+=[L.median()['cites']]\n",
    "                L['authors']=replications['Replication authors nrauthors'][i][j]\n",
    "                L['pages']=replications['Replication authors page count'][i][j]\n",
    "                L=L.dropna()                \n",
    "                averagep+=[L.mean()['cites']]\n",
    "                averagepm+=[L.median()['cites']]\n",
    "                averagepages += [L.mean()['pages']] \n",
    "                averagepagesm += [L.median()['pages']]\n",
    "                averageauthors += [L.mean()['authors']] \n",
    "                averageauthorsm += [L.median()['authors']]\n",
    "            else:\n",
    "                average += [None]\n",
    "                averagep += [None]\n",
    "                averagepages += [None]\n",
    "                averagem+=[None]\n",
    "                averagepm+=[None]\n",
    "                averagepagesm+=[None]\n",
    "                averageauthors+=[None]\n",
    "                averageauthorsm+=[None]\n",
    "\n",
    "    \n",
    "    \n",
    "        except:\n",
    "            average += [None]\n",
    "            averagep += [None]\n",
    "            averagepages += [None]\n",
    "            averagem+=[None]\n",
    "            averagepm+=[None]\n",
    "            averagepagesm+=[None]\n",
    "            averageauthors+=[None]\n",
    "            averageauthorsm+=[None]\n",
    "\n",
    "        \n",
    "    averages += [average]\n",
    "    averagesp += [averagep]\n",
    "    averagespages += [averagepages]\n",
    "    averagesm += [averagem]\n",
    "    averagespm += [averagepm]\n",
    "    averagespagesm += [averagepagesm]\n",
    "    averagesauthors+=[averageauthors]\n",
    "    averagesauthorsm+=[averageauthorsm]\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "replications['Average replication authors citations'] = averages\n",
    "replications['Average replication authors citations (for those with pages only)'] = averagesp\n",
    "replications['Average replication authors page count'] = averagespages\n",
    "replications['Average replication authors nr authors'] = averagesauthors\n",
    "\n",
    "replications['Median replication authors citations'] = averagesm\n",
    "replications['Median replication authors citations (for those with pages only)'] = averagespm\n",
    "replications['Median replication authors page count'] = averagespagesm\n",
    "replications['Median replication authors nr authors'] = averagesauthorsm\n",
    "\n",
    "replications"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "497ec600-3cfe-4193-8c8f-9c86657cb28c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "replications.to_pickle('replications')\n",
    "originals.to_pickle('originals')\n",
    "\n",
    "replications=pd.read_pickle('replications')\n",
    "originals=pd.read_pickle('originals')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "4a37619a-9b58-4bba-bf92-0237266fe99c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "replications=pd.read_pickle('replications')\n",
    "originals=pd.read_pickle('originals')\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "5915459f-b7cc-4f6b-929b-f85319c273f8",
   "metadata": {},
   "outputs": [],
   "source": [
    "# now create dataframe with seperate line for each replication author and corresponding other citations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "063ea56e-dd9e-4aff-a231-84bf7c891ab4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "509"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "20"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "11"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "12"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "497"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "authordf = pd.DataFrame()\n",
    "for j in range(0,len(replications)): #iterates through each of the replication papers    \n",
    "    for i in range(0,(len(replications.loc[j,'Replication authors ID']))):\n",
    "        df = pd.DataFrame() #creates empty dataframe for each replication\n",
    "        \n",
    "        df.loc[i,'Replication no.']= j #gets the replication number\n",
    "        df.loc[i,'Replication EID'] = replications.loc[j,'EID replication']#gets replication EID\n",
    "        df.loc[i,'Replication Cite no.'] = replications.loc[j,'Replication Cite no.']#gets replication citation\n",
    "        df.loc[i,'Replication page count'] = replications.loc[j,'Replication page count']#gets replication page count\n",
    "        df.loc[i,'Replication nr authors'] = replications.loc[j,'nr authors']\n",
    "        df.loc[i,'Replication Year']= replications.loc[j,'Replication Year']\n",
    "        df.loc[i,'AuthorID'] = replications.loc[j,'Replication authors ID'][i]\n",
    "        \n",
    "        df.loc[i,'AuthorID average other nr authors'] = replications.loc[j,'Average replication authors nr authors'][i]\n",
    "        df.loc[i,'AuthorID average other cites'] = replications.loc[j,'Average replication authors citations'][i]\n",
    "        df.loc[i,'AuthorID average other page counts'] = replications.loc[j,'Average replication authors page count'][i]\n",
    "        df.loc[i,'AuthorID average other cites (for those with pages only)'] = replications.loc[j,'Average replication authors citations (for those with pages only)'][i]\n",
    "\n",
    "        df.loc[i,'AuthorID median other nr authors'] = replications.loc[j,'Median replication authors nr authors'][i]\n",
    "        df.loc[i,'AuthorID median other cites'] = replications.loc[j,'Median replication authors citations'][i]\n",
    "        df.loc[i,'AuthorID median other page counts'] = replications.loc[j,'Median replication authors page count'][i]\n",
    "        df.loc[i,'AuthorID median other cites (for those with pages only)'] = replications.loc[j,'Median replication authors citations (for those with pages only)'][i]\n",
    "    \n",
    "        authordf =pd.concat([authordf, df], axis=0).reset_index(drop=True) #then combine/concat each dataframe for each replication one below the other\n",
    "\n",
    "        replications['Average replication authors citations (for those with pages only)']\n",
    "# exclude those that do not have other papers\n",
    "fullauthordf=authordf # to analyze differences between those with and without replications/originals\n",
    "authordf=authordf[authordf['AuthorID average other cites'].notna()].reset_index(drop=True)\n",
    "\n",
    "\n",
    "# add ratio\n",
    "# we check how many zeros we will exclude\n",
    "display(len(authordf))\n",
    "display(np.sum((authordf['Replication Cite no.']==0)*1))\n",
    "display(np.sum((authordf['AuthorID average other cites']==0)*1))\n",
    "display(np.sum((authordf['AuthorID median other cites']==0)*1))\n",
    "\n",
    "# excluding zero counterfactuals\n",
    "authordf['mask'] =  (authordf['AuthorID average other cites']!=0)*1+ (authordf['AuthorID median other cites']!=0)*1\n",
    "authordf=authordf[authordf['mask']==2]\n",
    "\n",
    "authordf['AuthorID ratio average other cites'] = authordf['Replication Cite no.']/authordf['AuthorID average other cites']\n",
    "authordf['AuthorID ratio median other cites'] = authordf['Replication Cite no.']/authordf['AuthorID median other cites']\n",
    "\n",
    "display(len(authordf))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "a7387012-a033-45f7-8448-692f73414a0d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "466\n",
      "346\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "15"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# FOR REFEREE ROBUSTNESS CHECK\n",
    "a=fullauthordf[fullauthordf['AuthorID average other cites'].notna()]['AuthorID']\n",
    "b=fullauthordf[~fullauthordf['AuthorID average other cites'].notna()]['AuthorID']\n",
    "common_elements = set(a) & set(b)\n",
    "print(len(np.unique(a)))\n",
    "print(len(np.unique(b)))\n",
    "\n",
    "len(common_elements)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "f25aade5-0641-405c-838e-a92f897ca112",
   "metadata": {},
   "outputs": [],
   "source": [
    "# to get authors who are either in the set of same authors (a) or not (b)\n",
    "cleana = set(a) - set(b)\n",
    "cleanb = set(b) - set(a)\n",
    "replications['in same author a']=0 \n",
    "replications['in same author b']=0 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "6d3ce950-4cdb-4956-a3f6-1f5f74f9cd1f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# adding indicator for whgich group they belong to\n",
    "for i  in range(0,len(replications['Replication authors ID'])):\n",
    "    counta=0\n",
    "    countb=0\n",
    "    for j in replications['Replication authors ID'][i]:\n",
    "        if j in cleana:\n",
    "            counta=counta+1\n",
    "        if j in cleanb:\n",
    "            countb=countb+1\n",
    "    if counta==len(replications['Replication authors ID'][i]):\n",
    "        replications.at[i,'in same author a']=1\n",
    "    if countb==len(replications['Replication authors ID'][i]):\n",
    "        replications.at[i,'in same author b']=1\n",
    "    \n",
    "        \n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "e7938de4-487a-4bd2-981a-d136d7177b34",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# check whether not in both\n",
    "np.sum(((replications['in same author a']==1) & (replications['in same author b']==1)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "02961728-e347-44ee-8580-0dbc1ff2b561",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count     156.000000\n",
       "mean       57.179487\n",
       "std       142.245698\n",
       "min         0.000000\n",
       "25%         5.000000\n",
       "50%        17.500000\n",
       "75%        51.000000\n",
       "max      1509.000000\n",
       "Name: Replication Cite no., dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "count    105.000000\n",
       "mean      32.523810\n",
       "std       69.069794\n",
       "min        0.000000\n",
       "25%        4.000000\n",
       "50%       13.000000\n",
       "75%       30.000000\n",
       "max      555.000000\n",
       "Name: Replication Cite no., dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "count     156.000000\n",
       "mean      410.102564\n",
       "std       751.764180\n",
       "min         3.000000\n",
       "25%        63.750000\n",
       "50%       167.000000\n",
       "75%       404.250000\n",
       "max      4452.000000\n",
       "Name: Original cites after replication, dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "count     105.000000\n",
       "mean      302.038095\n",
       "std       536.982522\n",
       "min         1.000000\n",
       "25%        54.000000\n",
       "50%       138.000000\n",
       "75%       292.000000\n",
       "max      3708.000000\n",
       "Name: Original cites after replication, dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "count    156.000000\n",
       "mean       0.220633\n",
       "std        0.365324\n",
       "min        0.000000\n",
       "25%        0.041132\n",
       "50%        0.125874\n",
       "75%        0.273016\n",
       "max        3.005976\n",
       "dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "count    105.000000\n",
       "mean       0.788895\n",
       "std        6.330705\n",
       "min        0.000000\n",
       "25%        0.030303\n",
       "50%        0.108280\n",
       "75%        0.213235\n",
       "max       65.000000\n",
       "dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_4d377 caption {\n",
       "  text-align: center;\n",
       "  font-size: 150%;\n",
       "  color: blue;\n",
       "}\n",
       "#T_4d377 td {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_4d377 th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_4d377 .true {\n",
       "  border-right: solid;\n",
       "  border-color: blue;\n",
       "  vertical-align: top;\n",
       "}\n",
       "#T_4d377_row0_col0, #T_4d377_row0_col1, #T_4d377_row0_col2, #T_4d377_row0_col3, #T_4d377_row0_col4, #T_4d377_row0_col5, #T_4d377_row1_col0, #T_4d377_row1_col1, #T_4d377_row1_col2, #T_4d377_row1_col3, #T_4d377_row1_col4, #T_4d377_row1_col5, #T_4d377_row2_col0, #T_4d377_row2_col1, #T_4d377_row2_col2, #T_4d377_row2_col3, #T_4d377_row2_col4, #T_4d377_row2_col5, #T_4d377_row3_col0, #T_4d377_row3_col1, #T_4d377_row3_col2, #T_4d377_row3_col3, #T_4d377_row3_col4, #T_4d377_row3_col5, #T_4d377_row4_col0, #T_4d377_row4_col1, #T_4d377_row4_col2, #T_4d377_row4_col3, #T_4d377_row4_col4, #T_4d377_row4_col5, #T_4d377_row5_col0, #T_4d377_row5_col1, #T_4d377_row5_col2, #T_4d377_row5_col3, #T_4d377_row5_col4, #T_4d377_row5_col5, #T_4d377_row6_col0, #T_4d377_row6_col1, #T_4d377_row6_col2, #T_4d377_row6_col3, #T_4d377_row6_col4, #T_4d377_row6_col5 {\n",
       "  width: 500px;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_4d377\">\n",
       "  <caption>Table 4 Annex: Comparing Citation, Included in Same Author Sample or Not </caption>\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_4d377_level0_col0\" class=\"col_heading level0 col0\" >(I) Replication citations Same Author Included</th>\n",
       "      <th id=\"T_4d377_level0_col1\" class=\"col_heading level0 col1\" >(II) Replication citations Same Author Not Included</th>\n",
       "      <th id=\"T_4d377_level0_col2\" class=\"col_heading level0 col2\" >(III) Original citations Same Author Included</th>\n",
       "      <th id=\"T_4d377_level0_col3\" class=\"col_heading level0 col3\" >(IV) Original citations Same Author Not Included</th>\n",
       "      <th id=\"T_4d377_level0_col4\" class=\"col_heading level0 col4\" >(V) Ratio, Same Author Included</th>\n",
       "      <th id=\"T_4d377_level0_col5\" class=\"col_heading level0 col5\" >(VI) Ratio Same Author Not Included</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_4d377_level0_row0\" class=\"row_heading level0 row0\" >Mean</th>\n",
       "      <td id=\"T_4d377_row0_col0\" class=\"data row0 col0\" >3.86</td>\n",
       "      <td id=\"T_4d377_row0_col1\" class=\"data row0 col1\" >2.25</td>\n",
       "      <td id=\"T_4d377_row0_col2\" class=\"data row0 col2\" >33.34</td>\n",
       "      <td id=\"T_4d377_row0_col3\" class=\"data row0 col3\" >24.26</td>\n",
       "      <td id=\"T_4d377_row0_col4\" class=\"data row0 col4\" >0.22</td>\n",
       "      <td id=\"T_4d377_row0_col5\" class=\"data row0 col5\" >0.79</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_4d377_level0_row1\" class=\"row_heading level0 row1\" >Median</th>\n",
       "      <td id=\"T_4d377_row1_col0\" class=\"data row1 col0\" >1.48</td>\n",
       "      <td id=\"T_4d377_row1_col1\" class=\"data row1 col1\" >1.17</td>\n",
       "      <td id=\"T_4d377_row1_col2\" class=\"data row1 col2\" >13.91</td>\n",
       "      <td id=\"T_4d377_row1_col3\" class=\"data row1 col3\" >11.25</td>\n",
       "      <td id=\"T_4d377_row1_col4\" class=\"data row1 col4\" >0.13</td>\n",
       "      <td id=\"T_4d377_row1_col5\" class=\"data row1 col5\" >0.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_4d377_level0_row2\" class=\"row_heading level0 row2\" >Min</th>\n",
       "      <td id=\"T_4d377_row2_col0\" class=\"data row2 col0\" >0.00</td>\n",
       "      <td id=\"T_4d377_row2_col1\" class=\"data row2 col1\" >0.00</td>\n",
       "      <td id=\"T_4d377_row2_col2\" class=\"data row2 col2\" >0.30</td>\n",
       "      <td id=\"T_4d377_row2_col3\" class=\"data row2 col3\" >0.02</td>\n",
       "      <td id=\"T_4d377_row2_col4\" class=\"data row2 col4\" >0.00</td>\n",
       "      <td id=\"T_4d377_row2_col5\" class=\"data row2 col5\" >0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_4d377_level0_row3\" class=\"row_heading level0 row3\" >Q.1</th>\n",
       "      <td id=\"T_4d377_row3_col0\" class=\"data row3 col0\" >0.47</td>\n",
       "      <td id=\"T_4d377_row3_col1\" class=\"data row3 col1\" >0.33</td>\n",
       "      <td id=\"T_4d377_row3_col2\" class=\"data row3 col2\" >5.97</td>\n",
       "      <td id=\"T_4d377_row3_col3\" class=\"data row3 col3\" >4.84</td>\n",
       "      <td id=\"T_4d377_row3_col4\" class=\"data row3 col4\" >0.04</td>\n",
       "      <td id=\"T_4d377_row3_col5\" class=\"data row3 col5\" >0.03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_4d377_level0_row4\" class=\"row_heading level0 row4\" >Q.3</th>\n",
       "      <td id=\"T_4d377_row4_col0\" class=\"data row4 col0\" >4.03</td>\n",
       "      <td id=\"T_4d377_row4_col1\" class=\"data row4 col1\" >2.50</td>\n",
       "      <td id=\"T_4d377_row4_col2\" class=\"data row4 col2\" >32.29</td>\n",
       "      <td id=\"T_4d377_row4_col3\" class=\"data row4 col3\" >25.64</td>\n",
       "      <td id=\"T_4d377_row4_col4\" class=\"data row4 col4\" >0.27</td>\n",
       "      <td id=\"T_4d377_row4_col5\" class=\"data row4 col5\" >0.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_4d377_level0_row5\" class=\"row_heading level0 row5\" >Max</th>\n",
       "      <td id=\"T_4d377_row5_col0\" class=\"data row5 col0\" >79.42</td>\n",
       "      <td id=\"T_4d377_row5_col1\" class=\"data row5 col1\" >34.69</td>\n",
       "      <td id=\"T_4d377_row5_col2\" class=\"data row5 col2\" >371.00</td>\n",
       "      <td id=\"T_4d377_row5_col3\" class=\"data row5 col3\" >283.00</td>\n",
       "      <td id=\"T_4d377_row5_col4\" class=\"data row5 col4\" >3.01</td>\n",
       "      <td id=\"T_4d377_row5_col5\" class=\"data row5 col5\" >65.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_4d377_level0_row6\" class=\"row_heading level0 row6\" ># Obs.</th>\n",
       "      <td id=\"T_4d377_row6_col0\" class=\"data row6 col0\" >156</td>\n",
       "      <td id=\"T_4d377_row6_col1\" class=\"data row6 col1\" >105</td>\n",
       "      <td id=\"T_4d377_row6_col2\" class=\"data row6 col2\" >156</td>\n",
       "      <td id=\"T_4d377_row6_col3\" class=\"data row6 col3\" >105</td>\n",
       "      <td id=\"T_4d377_row6_col4\" class=\"data row6 col4\" >156</td>\n",
       "      <td id=\"T_4d377_row6_col5\" class=\"data row6 col5\" >105</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7fd8bb2046a0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Notes: this table is based on replication papers written by authors who were included in the same authors counterfactual or not written by authors included in the same authors counterfactual. It compares citations of their replication paper, the originals they replicated, and the ratio of these\n",
      "share included <1\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.9743589743589743"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "share not included <1\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.9714285714285714"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# comparing the stats for those in same author and not in same author\n",
    "replicationsa=replications[replications['in same author a']==1]\n",
    "replicationsb=replications[replications['in same author b']==1]\n",
    "\n",
    "originalsa=originals[replications['in same author a']==1]\n",
    "originalsb=originals[replications['in same author b']==1]\n",
    "\n",
    "replicationsa['Replication Cite no.']/(2025-replicationsa['Replication Year'])\n",
    "replicationsa['Replication Cite no.']/(2025-replicationsa['Replication Year'])\n",
    "\n",
    "\n",
    "display(replications[replications['in same author a']==1]['Replication Cite no.'].describe())\n",
    "display(replications[replications['in same author b']==1]['Replication Cite no.'].describe())\n",
    "\n",
    "display(originals[replications['in same author a']==1]['Original cites after replication'].describe())\n",
    "display(originals[replications['in same author b']==1]['Original cites after replication'].describe())\n",
    "\n",
    "\n",
    "display((replications[replications['in same author a']==1]['Replication Cite no.']/originals[replications['in same author a']==1]['Original cites after replication']).describe())\n",
    "display((replications[replications['in same author b']==1]['Replication Cite no.']/originals[replications['in same author b']==1]['Original cites after replication']).describe())\n",
    "\n",
    "styles = [{'selector': 'caption', 'props': 'text-align: center; font-size: 150%; color: blue'},\n",
    "        {'selector': 'td', 'props': 'text-align: center;'},\n",
    "         {'selector': 'th', 'props': 'text-align: center;'},  \n",
    "         {'selector': '.true', 'props': 'border-right:solid; border-color:blue; vertical-align:top'}]\n",
    "\n",
    "cols = [\"(I) Replication citations Same Author Included\",\"(II) Replication citations Same Author Not Included\",\"(III) Original citations Same Author Included\",\"(IV) Original citations Same Author Not Included\",\"(V) Ratio, Same Author Included\",\"(VI) Ratio Same Author Not Included\" ]\n",
    "\n",
    "summarydf = pd.DataFrame(columns=cols)\n",
    "summarydf[\"(I) Replication citations Same Author Included\"] = (replicationsa['Replication Cite no.']/(2025-replicationsa['Replication Year'])).describe()\n",
    "summarydf[\"(II) Replication citations Same Author Not Included\"] = (replicationsb['Replication Cite no.']/(2025-replicationsb['Replication Year'])).describe()\n",
    "summarydf[\"(III) Original citations Same Author Included\"] = (originalsa['Original cites after replication']/(2025-replicationsa['Replication Year'])).describe()\n",
    "summarydf[\"(IV) Original citations Same Author Not Included\"] = (originalsb['Original cites after replication']/(2025-replicationsb['Replication Year'])).describe()\n",
    "summarydf[\"(V) Ratio, Same Author Included\"] = (replicationsa['Replication Cite no.']/originalsa['Original cites after replication']).describe()\n",
    "summarydf[\"(VI) Ratio Same Author Not Included\"] = (replicationsb['Replication Cite no.']/originalsb['Original cites after replication']).describe()\n",
    "a=summarydf.T[['mean','50%','min',\t'25%'\t,'75%',\t'max','count']]\n",
    "a=a.round(2)\n",
    "a['count']=a['count'].apply(lambda x: f'{x:.0f}')\n",
    "a=a.rename(columns={'50%': 'Median', 'mean': 'Mean', '25%': 'Q.1', '75%': 'Q.3', 'max': 'Max', 'min': 'Min', 'count': '# Obs.'})\n",
    "display(a.T.style.set_caption(\"Table 4 Annex: Comparing Citation, Included in Same Author Sample or Not \").format(precision=2).set_table_styles(styles).set_properties(**{'width': '500px'}))\n",
    "print('Notes: this table is based on replication papers written by authors who were included in the same authors counterfactual or not written by authors included in the same authors counterfactual. It compares citations of their replication paper, the originals they replicated, and the ratio of these')\n",
    "\n",
    "\n",
    "print('share included <1')\n",
    "display(np.sum((replicationsa['Replication Cite no.']/originalsa['Original cites after replication'])<1)/156)\n",
    "\n",
    "print('share not included <1')\n",
    "display(np.sum((replicationsb['Replication Cite no.']/originalsb['Original cites after replication'])<1)/105)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "e39b6165-8c8b-470b-a0b3-7eb77bd8c34f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_5631d caption {\n",
       "  text-align: center;\n",
       "  font-size: 150%;\n",
       "  color: blue;\n",
       "}\n",
       "#T_5631d td {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_5631d th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_5631d .true {\n",
       "  border-right: solid;\n",
       "  border-color: blue;\n",
       "  vertical-align: top;\n",
       "}\n",
       "#T_5631d_row0_col0, #T_5631d_row0_col1, #T_5631d_row0_col2, #T_5631d_row0_col3, #T_5631d_row0_col4, #T_5631d_row1_col0, #T_5631d_row1_col1, #T_5631d_row1_col2, #T_5631d_row1_col3, #T_5631d_row1_col4, #T_5631d_row2_col0, #T_5631d_row2_col1, #T_5631d_row2_col2, #T_5631d_row2_col3, #T_5631d_row2_col4, #T_5631d_row3_col0, #T_5631d_row3_col1, #T_5631d_row3_col2, #T_5631d_row3_col3, #T_5631d_row3_col4, #T_5631d_row4_col0, #T_5631d_row4_col1, #T_5631d_row4_col2, #T_5631d_row4_col3, #T_5631d_row4_col4, #T_5631d_row5_col0, #T_5631d_row5_col1, #T_5631d_row5_col2, #T_5631d_row5_col3, #T_5631d_row5_col4, #T_5631d_row6_col0, #T_5631d_row6_col1, #T_5631d_row6_col2, #T_5631d_row6_col3, #T_5631d_row6_col4 {\n",
       "  width: 500px;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_5631d\">\n",
       "  <caption>Table 4: Comparing Citations using the Same Author Counterfactual</caption>\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_5631d_level0_col0\" class=\"col_heading level0 col0\" >(I) Replication citations</th>\n",
       "      <th id=\"T_5631d_level0_col1\" class=\"col_heading level0 col1\" >(II) Same Author, Average Citations</th>\n",
       "      <th id=\"T_5631d_level0_col2\" class=\"col_heading level0 col2\" >(III) Same Author, Median Citations</th>\n",
       "      <th id=\"T_5631d_level0_col3\" class=\"col_heading level0 col3\" >(IV) Ratio, Same Author, Average Citations</th>\n",
       "      <th id=\"T_5631d_level0_col4\" class=\"col_heading level0 col4\" >(V) Ratio, Same Author, Median Citations</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_5631d_level0_row0\" class=\"row_heading level0 row0\" >Mean</th>\n",
       "      <td id=\"T_5631d_row0_col0\" class=\"data row0 col0\" >4.03</td>\n",
       "      <td id=\"T_5631d_row0_col1\" class=\"data row0 col1\" >3.76</td>\n",
       "      <td id=\"T_5631d_row0_col2\" class=\"data row0 col2\" >3.30</td>\n",
       "      <td id=\"T_5631d_row0_col3\" class=\"data row0 col3\" >2.32</td>\n",
       "      <td id=\"T_5631d_row0_col4\" class=\"data row0 col4\" >3.27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_5631d_level0_row1\" class=\"row_heading level0 row1\" >Median</th>\n",
       "      <td id=\"T_5631d_row1_col0\" class=\"data row1 col0\" >1.64</td>\n",
       "      <td id=\"T_5631d_row1_col1\" class=\"data row1 col1\" >2.14</td>\n",
       "      <td id=\"T_5631d_row1_col2\" class=\"data row1 col2\" >1.83</td>\n",
       "      <td id=\"T_5631d_row1_col3\" class=\"data row1 col3\" >0.78</td>\n",
       "      <td id=\"T_5631d_row1_col4\" class=\"data row1 col4\" >1.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_5631d_level0_row2\" class=\"row_heading level0 row2\" >Min</th>\n",
       "      <td id=\"T_5631d_row2_col0\" class=\"data row2 col0\" >0.00</td>\n",
       "      <td id=\"T_5631d_row2_col1\" class=\"data row2 col1\" >0.03</td>\n",
       "      <td id=\"T_5631d_row2_col2\" class=\"data row2 col2\" >0.03</td>\n",
       "      <td id=\"T_5631d_row2_col3\" class=\"data row2 col3\" >0.00</td>\n",
       "      <td id=\"T_5631d_row2_col4\" class=\"data row2 col4\" >0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_5631d_level0_row3\" class=\"row_heading level0 row3\" >Q.1</th>\n",
       "      <td id=\"T_5631d_row3_col0\" class=\"data row3 col0\" >0.72</td>\n",
       "      <td id=\"T_5631d_row3_col1\" class=\"data row3 col1\" >0.97</td>\n",
       "      <td id=\"T_5631d_row3_col2\" class=\"data row3 col2\" >0.77</td>\n",
       "      <td id=\"T_5631d_row3_col3\" class=\"data row3 col3\" >0.31</td>\n",
       "      <td id=\"T_5631d_row3_col4\" class=\"data row3 col4\" >0.34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_5631d_level0_row4\" class=\"row_heading level0 row4\" >Q.3</th>\n",
       "      <td id=\"T_5631d_row4_col0\" class=\"data row4 col0\" >4.20</td>\n",
       "      <td id=\"T_5631d_row4_col1\" class=\"data row4 col1\" >4.12</td>\n",
       "      <td id=\"T_5631d_row4_col2\" class=\"data row4 col2\" >3.75</td>\n",
       "      <td id=\"T_5631d_row4_col3\" class=\"data row4 col3\" >2.18</td>\n",
       "      <td id=\"T_5631d_row4_col4\" class=\"data row4 col4\" >2.67</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_5631d_level0_row5\" class=\"row_heading level0 row5\" >Max</th>\n",
       "      <td id=\"T_5631d_row5_col0\" class=\"data row5 col0\" >79.42</td>\n",
       "      <td id=\"T_5631d_row5_col1\" class=\"data row5 col1\" >55.57</td>\n",
       "      <td id=\"T_5631d_row5_col2\" class=\"data row5 col2\" >55.57</td>\n",
       "      <td id=\"T_5631d_row5_col3\" class=\"data row5 col3\" >101.00</td>\n",
       "      <td id=\"T_5631d_row5_col4\" class=\"data row5 col4\" >127.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_5631d_level0_row6\" class=\"row_heading level0 row6\" ># Obs.</th>\n",
       "      <td id=\"T_5631d_row6_col0\" class=\"data row6 col0\" >497</td>\n",
       "      <td id=\"T_5631d_row6_col1\" class=\"data row6 col1\" >497</td>\n",
       "      <td id=\"T_5631d_row6_col2\" class=\"data row6 col2\" >497</td>\n",
       "      <td id=\"T_5631d_row6_col3\" class=\"data row6 col3\" >497</td>\n",
       "      <td id=\"T_5631d_row6_col4\" class=\"data row6 col4\" >497</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7fd8bb21b790>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Notes: this table is based on 497 authors of replication papers. It compares citations of their replication paper and the citations of the \n",
      "non-replication papers they published in the year the replication was published. The Ratio columns divide replication citations by the corresponding \n",
      "counterfactual citations. This sample excludes the 13 authors whose counterfactual had zero citations. Authors of replications who had no \n",
      "non-replication papers that were published in the year of the publication of the replication are excluded. Since each replication is matched to several counterfactuals, we explore both the distribution when using the mean counterfactual for each replication (column II and IV), and the median \n",
      "counterfactual for each replication (column III and V). Q1 and Q3 are the first and third quartile.\n"
     ]
    }
   ],
   "source": [
    "# this is the standard same author table\n",
    "styles = [{'selector': 'caption', 'props': 'text-align: center; font-size: 150%; color: blue'},\n",
    "        {'selector': 'td', 'props': 'text-align: center;'},\n",
    "         {'selector': 'th', 'props': 'text-align: center;'},  \n",
    "         {'selector': '.true', 'props': 'border-right:solid; border-color:blue; vertical-align:top'}]\n",
    "\n",
    "cols = [ \"(I) Replication citations\", \"(II) Same Author, Average Citations\", \"(III) Same Author, Median Citations\", \"(IV) Ratio, Same Author, Average Citations\", \"(V) Ratio, Same Author, Median Citations\"]\n",
    "summarydf = pd.DataFrame(columns=cols)\n",
    "summarydf[\"(I) Replication citations\"] = (authordf['Replication Cite no.']/(2025-authordf['Replication Year'])).describe()\n",
    "summarydf[\"(III) Same Author, Median Citations\"] = (authordf['AuthorID median other cites']/(2025-authordf['Replication Year'])).describe()\n",
    "summarydf[\"(II) Same Author, Average Citations\"] = (authordf['AuthorID average other cites']/(2025-authordf['Replication Year'])).describe()\n",
    "summarydf[\"(V) Ratio, Same Author, Median Citations\"] = authordf['AuthorID ratio median other cites'].describe()\n",
    "summarydf[\"(IV) Ratio, Same Author, Average Citations\"] = authordf['AuthorID ratio average other cites'].describe()\n",
    "\n",
    "a=summarydf.T[['mean','50%','min',\t'25%'\t,'75%',\t'max','count']]\n",
    "a=a.round(2)\n",
    "a['count']=a['count'].apply(lambda x: f'{x:.0f}')\n",
    "a=a.rename(columns={'50%': 'Median', 'mean': 'Mean', '25%': 'Q.1', '75%': 'Q.3', 'max': 'Max', 'min': 'Min', 'count': '# Obs.'})\n",
    "display(a.T.style.set_caption(\"Table 4: Comparing Citations using the Same Author Counterfactual\").format(precision=2).set_table_styles(styles).set_properties(**{'width': '500px'}))\n",
    "print('Notes: this table is based on 497 authors of replication papers. It compares citations of their replication paper and the citations of the \\nnon-replication papers they published in the year the replication was published. The Ratio columns divide replication citations by the corresponding \\ncounterfactual citations. This sample excludes the 13 authors whose counterfactual had zero citations. Authors of replications who had no \\nnon-replication papers that were published in the year of the publication of the replication are excluded. Since each replication is matched to several counterfactuals, we explore both the distribution when using the mean counterfactual for each replication (column II and IV), and the median \\ncounterfactual for each replication (column III and V). Q1 and Q3 are the first and third quartile.')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "6cbaeffc-144b-436f-bc40-f936145d483b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.7222222222222222\n",
      "4.2\n",
      "9.416666666666668\n",
      "-4.4944444444444445\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "count    497.000000\n",
       "mean       2.934679\n",
       "std        3.054215\n",
       "min        0.000000\n",
       "25%        0.722222\n",
       "50%        1.642857\n",
       "75%        4.200000\n",
       "max        9.416667\n",
       "dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_48eb2 caption {\n",
       "  text-align: center;\n",
       "  font-size: 150%;\n",
       "  color: blue;\n",
       "}\n",
       "#T_48eb2 td {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_48eb2 th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_48eb2 .true {\n",
       "  border-right: solid;\n",
       "  border-color: blue;\n",
       "  vertical-align: top;\n",
       "}\n",
       "#T_48eb2_row0_col0, #T_48eb2_row0_col1, #T_48eb2_row0_col2, #T_48eb2_row0_col3, #T_48eb2_row0_col4, #T_48eb2_row1_col0, #T_48eb2_row1_col1, #T_48eb2_row1_col2, #T_48eb2_row1_col3, #T_48eb2_row1_col4, #T_48eb2_row2_col0, #T_48eb2_row2_col1, #T_48eb2_row2_col2, #T_48eb2_row2_col3, #T_48eb2_row2_col4, #T_48eb2_row3_col0, #T_48eb2_row3_col1, #T_48eb2_row3_col2, #T_48eb2_row3_col3, #T_48eb2_row3_col4, #T_48eb2_row4_col0, #T_48eb2_row4_col1, #T_48eb2_row4_col2, #T_48eb2_row4_col3, #T_48eb2_row4_col4, #T_48eb2_row5_col0, #T_48eb2_row5_col1, #T_48eb2_row5_col2, #T_48eb2_row5_col3, #T_48eb2_row5_col4, #T_48eb2_row6_col0, #T_48eb2_row6_col1, #T_48eb2_row6_col2, #T_48eb2_row6_col3, #T_48eb2_row6_col4 {\n",
       "  width: 500px;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_48eb2\">\n",
       "  <caption>Table 4A: Comparing Citations using the Same Author Counterfactual</caption>\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_48eb2_level0_col0\" class=\"col_heading level0 col0\" >(I) Replication citations</th>\n",
       "      <th id=\"T_48eb2_level0_col1\" class=\"col_heading level0 col1\" >(II) Same Author, Average Citations</th>\n",
       "      <th id=\"T_48eb2_level0_col2\" class=\"col_heading level0 col2\" >(III) Same Author, Median Citations</th>\n",
       "      <th id=\"T_48eb2_level0_col3\" class=\"col_heading level0 col3\" >(IV) Ratio, Same Author, Average Citations</th>\n",
       "      <th id=\"T_48eb2_level0_col4\" class=\"col_heading level0 col4\" >(V) Ratio, Same Author, Median Citations</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_48eb2_level0_row0\" class=\"row_heading level0 row0\" >Mean</th>\n",
       "      <td id=\"T_48eb2_row0_col0\" class=\"data row0 col0\" >2.93</td>\n",
       "      <td id=\"T_48eb2_row0_col1\" class=\"data row0 col1\" >3.76</td>\n",
       "      <td id=\"T_48eb2_row0_col2\" class=\"data row0 col2\" >3.30</td>\n",
       "      <td id=\"T_48eb2_row0_col3\" class=\"data row0 col3\" >2.05</td>\n",
       "      <td id=\"T_48eb2_row0_col4\" class=\"data row0 col4\" >2.82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_48eb2_level0_row1\" class=\"row_heading level0 row1\" >Median</th>\n",
       "      <td id=\"T_48eb2_row1_col0\" class=\"data row1 col0\" >1.64</td>\n",
       "      <td id=\"T_48eb2_row1_col1\" class=\"data row1 col1\" >2.14</td>\n",
       "      <td id=\"T_48eb2_row1_col2\" class=\"data row1 col2\" >1.83</td>\n",
       "      <td id=\"T_48eb2_row1_col3\" class=\"data row1 col3\" >0.77</td>\n",
       "      <td id=\"T_48eb2_row1_col4\" class=\"data row1 col4\" >0.94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_48eb2_level0_row2\" class=\"row_heading level0 row2\" >Min</th>\n",
       "      <td id=\"T_48eb2_row2_col0\" class=\"data row2 col0\" >0.00</td>\n",
       "      <td id=\"T_48eb2_row2_col1\" class=\"data row2 col1\" >0.03</td>\n",
       "      <td id=\"T_48eb2_row2_col2\" class=\"data row2 col2\" >0.03</td>\n",
       "      <td id=\"T_48eb2_row2_col3\" class=\"data row2 col3\" >0.00</td>\n",
       "      <td id=\"T_48eb2_row2_col4\" class=\"data row2 col4\" >0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_48eb2_level0_row3\" class=\"row_heading level0 row3\" >Q.1</th>\n",
       "      <td id=\"T_48eb2_row3_col0\" class=\"data row3 col0\" >0.72</td>\n",
       "      <td id=\"T_48eb2_row3_col1\" class=\"data row3 col1\" >0.97</td>\n",
       "      <td id=\"T_48eb2_row3_col2\" class=\"data row3 col2\" >0.77</td>\n",
       "      <td id=\"T_48eb2_row3_col3\" class=\"data row3 col3\" >0.31</td>\n",
       "      <td id=\"T_48eb2_row3_col4\" class=\"data row3 col4\" >0.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_48eb2_level0_row4\" class=\"row_heading level0 row4\" >Q.3</th>\n",
       "      <td id=\"T_48eb2_row4_col0\" class=\"data row4 col0\" >4.20</td>\n",
       "      <td id=\"T_48eb2_row4_col1\" class=\"data row4 col1\" >4.12</td>\n",
       "      <td id=\"T_48eb2_row4_col2\" class=\"data row4 col2\" >3.75</td>\n",
       "      <td id=\"T_48eb2_row4_col3\" class=\"data row4 col3\" >2.00</td>\n",
       "      <td id=\"T_48eb2_row4_col4\" class=\"data row4 col4\" >2.38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_48eb2_level0_row5\" class=\"row_heading level0 row5\" >Max</th>\n",
       "      <td id=\"T_48eb2_row5_col0\" class=\"data row5 col0\" >9.42</td>\n",
       "      <td id=\"T_48eb2_row5_col1\" class=\"data row5 col1\" >55.57</td>\n",
       "      <td id=\"T_48eb2_row5_col2\" class=\"data row5 col2\" >55.57</td>\n",
       "      <td id=\"T_48eb2_row5_col3\" class=\"data row5 col3\" >101.00</td>\n",
       "      <td id=\"T_48eb2_row5_col4\" class=\"data row5 col4\" >101.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_48eb2_level0_row6\" class=\"row_heading level0 row6\" ># Obs.</th>\n",
       "      <td id=\"T_48eb2_row6_col0\" class=\"data row6 col0\" >497</td>\n",
       "      <td id=\"T_48eb2_row6_col1\" class=\"data row6 col1\" >497</td>\n",
       "      <td id=\"T_48eb2_row6_col2\" class=\"data row6 col2\" >497</td>\n",
       "      <td id=\"T_48eb2_row6_col3\" class=\"data row6 col3\" >497</td>\n",
       "      <td id=\"T_48eb2_row6_col4\" class=\"data row6 col4\" >497</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7fd8bb3094f0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Notes: this table is similar to table 4 in the paper but uses winsorized annual replication citation counts\n",
      "share mean <1\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.5653923541247485"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "share median <1\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.5130784708249497"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# WINSORIZING OUTLIERS\n",
    "citation_rate_repl=(authordf['Replication Cite no.']/(2025-authordf['Replication Year']))\n",
    "Q1 = citation_rate_repl.quantile(0.25)\n",
    "Q3 = citation_rate_repl.quantile(0.75)\n",
    "print(Q1)\n",
    "print(Q3)\n",
    "# Compute IQR\n",
    "IQR = Q3 - Q1\n",
    "print(Q3+1.5*IQR)\n",
    "print(Q1-1.5*IQR)\n",
    "citation_rate_repl[citation_rate_repl>Q3+1.5*IQR]=Q3+1.5*IQR\n",
    "\n",
    "display(citation_rate_repl.describe())\n",
    "\n",
    "styles = [{'selector': 'caption', 'props': 'text-align: center; font-size: 150%; color: blue'},\n",
    "        {'selector': 'td', 'props': 'text-align: center;'},\n",
    "         {'selector': 'th', 'props': 'text-align: center;'},  \n",
    "         {'selector': '.true', 'props': 'border-right:solid; border-color:blue; vertical-align:top'}]\n",
    "\n",
    "cols = [ \"(I) Replication citations\", \"(II) Same Author, Average Citations\", \"(III) Same Author, Median Citations\", \"(IV) Ratio, Same Author, Average Citations\", \"(V) Ratio, Same Author, Median Citations\"]\n",
    "summarydf = pd.DataFrame(columns=cols)\n",
    "summarydf[\"(I) Replication citations\"] = citation_rate_repl.describe()\n",
    "summarydf[\"(III) Same Author, Median Citations\"] = (authordf['AuthorID median other cites']/(2025-authordf['Replication Year'])).describe()\n",
    "summarydf[\"(II) Same Author, Average Citations\"] = (authordf['AuthorID average other cites']/(2025-authordf['Replication Year'])).describe()\n",
    "summarydf[\"(V) Ratio, Same Author, Median Citations\"] =  (citation_rate_repl/(authordf['AuthorID median other cites']/(2025-authordf['Replication Year']))).describe()\n",
    "summarydf[\"(IV) Ratio, Same Author, Average Citations\"] = (citation_rate_repl/(authordf['AuthorID average other cites']/(2025-authordf['Replication Year']))).describe()\n",
    "\n",
    "a=summarydf.T[['mean','50%','min',\t'25%'\t,'75%',\t'max','count']]\n",
    "a=a.round(2)\n",
    "a['count']=a['count'].apply(lambda x: f'{x:.0f}')\n",
    "a=a.rename(columns={'50%': 'Median', 'mean': 'Mean', '25%': 'Q.1', '75%': 'Q.3', 'max': 'Max', 'min': 'Min', 'count': '# Obs.'})\n",
    "display(a.T.style.set_caption(\"Table 4A: Comparing Citations using the Same Author Counterfactual\").format(precision=2).set_table_styles(styles).set_properties(**{'width': '500px'}))\n",
    "print('Notes: this table is similar to table 4 in the paper but uses winsorized annual replication citation counts')\n",
    "\n",
    "\n",
    "print('share mean <1')\n",
    "display(np.sum(citation_rate_repl/(authordf['AuthorID average other cites']/(2025-authordf['Replication Year']))<1)/497)\n",
    "\n",
    "print('share median <1')\n",
    "display(np.sum(citation_rate_repl/(authordf['AuthorID median other cites']/(2025-authordf['Replication Year']))<1)/497)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "id": "b26e2c39-eaa2-4a50-adc3-76c64fb66f47",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKYAAAJOCAYAAACN2Q8zAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACM3ElEQVR4nOzdd3gU5f7+8XtJIyGFFNIpoaOACiiCHCEivQkHxYMoQVA4CEoTwUZQmqCAwqGoGFBEsIBii4ACimBDESkiIi0hCISYEEoCyfz+8Mv+XEJJlmxmsnm/rmuvw87MM/uZBI+3n53nGZthGIYAAAAAAACAElbO7AIAAAAAAABQNtGYAgAAAAAAgCloTAEAAAAAAMAUNKYAAAAAAABgChpTAAAAAAAAMAWNKQAAAAAAAJiCxhQAAAAAAABMQWMKAAAAAAAApqAxBQAAAAAAAFPQmAJwUQsXLpTNZrO/PD09FRUVpbvvvlu7d+92+ecnJCSoWrVqDtuqVaumhIQEl33mnDlztHDhwgLb9+3bJ5vNdtF9JeWrr77SXXfdpZiYGHl7eysoKEjNmzfX3LlzdfLkSftxF/6MDh06pMTERG3ZsqXkiwYAAJKkb775RnfeeaeioqLk7e2tyMhI9ezZU5s2bSrSeRITE2Wz2ZyqYd26dbLZbFq3bp1T4wurVatWatWqVaGOzc/P1xtvvKHbb79dYWFh8vLyUnh4uDp37qwPP/xQ+fn5ki6exTZu3KjExET99ddfxX8RAEoUjSkAl5WUlKRNmzZpzZo1GjJkiFauXKkWLVooIyOjxGtZsWKFnnrqKZed/1KNqaioKG3atEmdOnVy2Wdfzrhx43TrrbcqNTVVzz77rFavXq2lS5eqdevWSkxM1JNPPmk/9sKf0aFDhzR+/HgaUwAAmGTWrFm65ZZblJKSoqlTp2rNmjV6/vnnlZqaqhYtWmj27NmFPteAAQOK3Mw6r1GjRtq0aZMaNWrk1PjidubMGXXs2FF9+/ZVeHi45s6dqy+++ELz5s1TdHS07rzzTn344YeSLp7FNm7cqPHjx9OYAtyAp9kFALC2+vXrq0mTJpL+/gYsLy9P48aN0/vvv69+/fqVaC033HBDiX7eeT4+Prr55ptN+ex33nlHzzzzjPr3769XXnnF4VvSDh06aPTo0Q4B1ayfEQAAKOjrr7/WsGHD1LFjR61YsUKenv//P7/uvvtude/eXY888ohuuOEG3XLLLZc8z6lTp+Tn56fY2FjFxsY6VUtgYKBpeeZiRowYoc8++0yLFi3Sfffd57CvR48eevTRR3X69GlJ5mYxAK7HHVMAiuR8k+rPP/902P7DDz+oa9euCgkJUfny5XXDDTfo7bffdjjm/PTA1atXq1+/fgoJCVGFChXUpUsX/fHHH1f87ItN5fvrr780cuRIVa9eXT4+PgoPD1fHjh3166+/2o8ZP368mjZtqpCQEAUGBqpRo0ZasGCBDMNwOPf27du1fv16+/TF81MJLzWVb8OGDWrdurUCAgLk5+en5s2b6+OPP77oNa9du1b//e9/FRYWptDQUPXo0UOHDh264jU/88wzCg4O1ksvvXTRW/cDAgLUtm3bi/6M1q1bpxtvvFGS1K9fP/t1JSYm2o8vzO/t1KlTGjVqlOLi4lS+fHmFhISoSZMmeuutt65YPwAAZdnkyZNls9k0d+5ch6aUJHl6emrOnDmy2WyaMmWKffv56Xo//vijevbsqeDgYNWoUcNh3z/l5ORo5MiRioyMlJ+fn2699VZt3ry5QG662FS+hIQE+fv76/fff1fHjh3l7++vypUra+TIkcrJyXH4nMLkqcI6fPiwXn31VbVr165AU+q8WrVqqWHDhpIKZrHExEQ9+uijkqS4uDh7xvnntS1btkzNmjVThQoV5O/vr3bt2umnn35y+Iw//vhDd999t6Kjo+Xj46OIiAi1bt2aO82BEsYdUwCKZO/evZKk2rVr27etXbtW7du3V9OmTTVv3jwFBQVp6dKl6tWrl06dOlWgmdS/f3+1adNGS5Ys0cGDB/Xkk0+qVatW2rp1qypWrFjoWk6cOKEWLVpo3759euyxx9S0aVNlZ2fryy+/VFpamurWrSvp7zAzcOBAValSRdLf6zwMHTpUqampevrppyX9PQWuZ8+eCgoK0pw5cyT9/e3cpaxfv15t2rRRw4YNtWDBAvn4+GjOnDnq0qWL3nrrLfXq1cvh+AEDBqhTp072a3700UfVp08fffHFF5f8jLS0NG3btk29evWSn59foX8u5zVq1EhJSUnq16+fnnzySfvt7+e/aS3s723EiBF64403NGHCBN1www06efKktm3bpvT09CLXBABAWZGXl6e1a9eqSZMml7zLqXLlymrcuLG++OIL5eXlycPDw76vR48euvvuuzVo0CCH9SQv1K9fPy1btkyjR4/Wbbfdph07dqh79+7KysoqVJ1nz55V165d1b9/f40cOVJffvmlnn32WQUFBdlzklS4PFVYa9eu1dmzZ3XHHXcUadx5AwYM0PHjxzVr1iwtX75cUVFRkqRrrrlGkjRp0iQ9+eST9gyUm5uradOm6V//+pe+++47+3EdO3ZUXl6epk6dqipVqujYsWPauHEj0wOBkmYAwEUkJSUZkoxvvvnGOHv2rHHixAkjOTnZiIyMNG699Vbj7Nmz9mPr1q1r3HDDDQ7bDMMwOnfubERFRRl5eXkO5+zevbvDcV9//bUhyZgwYYJ9W9++fY2qVas6HFe1alWjb9++9vfPPPOMIclYvXp1oa8rLy/POHv2rPHMM88YoaGhRn5+vn3ftddea7Rs2bLAmL179xqSjKSkJPu2m2++2QgPDzdOnDhh33bu3Dmjfv36RmxsrP2856958ODBDuecOnWqIclIS0u7ZK3ffPONIckYM2ZMoa/vwp/R999/X6D28wr7e6tfv75xxx13FLoGAABgGIcPHzYkGXffffdlj+vVq5chyfjzzz8NwzCMcePGGZKMp59+usCx5/edt337dkOS8dhjjzkc99ZbbxmSHDLB2rVrDUnG2rVr7dv69u1rSDLefvtth/EdO3Y06tSpc8maL5enWrZsedE89U9TpkwxJBnJycmXPe68i2WxadOmGZKMvXv3Ohx74MABw9PT0xg6dKjD9hMnThiRkZHGXXfdZRiGYRw7dsyQZMycObNQNQBwHabyAbism2++WV5eXgoICFD79u0VHBysDz74wH47+u+//65ff/1V99xzjyTp3Llz9lfHjh2VlpamXbt2OZzz/LHnNW/eXFWrVtXatWuLVNunn36q2rVr6/bbb7/scV988YVuv/12BQUFycPDQ15eXnr66aeVnp6uI0eOFOkzJenkyZP69ttv1bNnT/n7+9u3e3h46N5771VKSkqBa+7atavD+/O3pu/fv7/In18civJ7u+mmm/Tpp59qzJgxWrdunX29BwAAcPWM/5sKd+EUvX//+99XHLt+/XpJ0l133eWwvWfPngWmDl6KzWZTly5dHLY1bNiwQEYp7jzlKp999pnOnTun++67zyHflC9fXi1btrRP9wsJCVGNGjU0bdo0TZ8+XT/99JP9KYAAShaNKQCX9frrr+v777/XF198oYEDB2rnzp36z3/+Y99/fq2pUaNGycvLy+E1ePBgSdKxY8cczhkZGVngcyIjI4s8Nezo0aNXXAD0u+++s6/B9Morr+jrr7/W999/ryeeeEKSnGqyZGRkyDAM+23j/xQdHS1JBa4lNDTU4f35aYKX+/zzt8qfnz5ZnIrye3vppZf02GOP6f3331d8fLxCQkJ0xx13aPfu3cVeFwAA7iIsLEx+fn5X/Pf4vn375Ofnp5CQEIftF8sZFzqfNyIiIhy2e3p6Fsgel+Ln56fy5cs7bPPx8dGZM2fs74s7T5VExrnxxhsLZJxly5bZ843NZtPnn3+udu3aaerUqWrUqJEqVaqkhx9+WCdOnCj2ugBcGmtMAbisevXq2Rc8j4+PV15enl599VW9++676tmzp8LCwiRJY8eOVY8ePS56jjp16ji8P3z4cIFjDh8+rJo1axaptkqVKiklJeWyxyxdulReXl766KOPHELX+++/X6TP+qfg4GCVK1dOaWlpBfadX9D8/M/lakRFRalBgwZatWqV/Wk8xaUov7cKFSpo/PjxGj9+vP7880/73VNdunRxWGQeAAD8fx4eHoqPj1dycrJSUlIu+mVaSkqKNm/erA4dOjisLyUVvIPqYs43n/7880/FxMTYt587d65Y14Is7jwVHx8vLy8vvf/++xo0aFAxVfm38xnn3XffVdWqVS97bNWqVbVgwQJJ0m+//aa3335biYmJys3N1bx584q1LgCXxh1TAIpk6tSpCg4O1tNPP638/HzVqVNHtWrV0s8//6wmTZpc9BUQEOBwjjfffNPh/caNG7V//361atWqSLV06NBBv/3222UXELfZbPL09HQIe6dPn9Ybb7xR4FgfH59CfeNXoUIFNW3aVMuXL3c4Pj8/X4sXL1ZsbKzD4vBX46mnnlJGRoYefvjhiz71Jjs7W6tWrbrk+EvdmeXM7036+xvZhIQE/ec//9GuXbt06tSpq7xCAADc19ixY2UYhgYPHqy8vDyHfXl5efrvf/8rwzA0duxYp85/6623Svr7CXT/9O677+rcuXPOFX0RRclThREZGakBAwbos88+0+uvv37RY/bs2aOtW7de8hyXyjjt2rWTp6en9uzZc8mMczG1a9fWk08+qQYNGujHH3906roAOIc7pgAUSXBwsMaOHavRo0dryZIl6tOnj+bPn68OHTqoXbt2SkhIUExMjI4fP66dO3fqxx9/1DvvvONwjh9++EEDBgzQnXfeqYMHD+qJJ55QTEyMfQpZYQ0bNkzLli1Tt27dNGbMGN100006ffq01q9fr86dOys+Pl6dOnXS9OnT1bt3bz344INKT0/X888/f9En7jVo0EBLly7VsmXLVL16dZUvX14NGjS46GdPnjxZbdq0UXx8vEaNGiVvb2/NmTNH27Zt01tvvVWobzkL484779RTTz2lZ599Vr/++qv69++vGjVq6NSpU/r22281f/589erVy357/YVq1KghX19fvfnmm6pXr578/f0VHR2t6OjoQv/emjZtqs6dO6thw4YKDg7Wzp079cYbb6hZs2bFehcXAADu5pZbbtHMmTM1bNgwtWjRQkOGDFGVKlV04MAB/e9//9O3336rmTNnqnnz5k6d/9prr9V//vMfvfDCC/Lw8NBtt92m7du364UXXlBQUJDKlSue+xCKkqcKa/r06frjjz+UkJCgzz77TN27d1dERISOHTum1atXKykpSUuXLrWvy3mh8xntxRdfVN++feXl5aU6deqoWrVqeuaZZ/TEE0/ojz/+sK+R+ueff+q7776z3wm+detWDRkyRHfeeadq1aolb29vffHFF9q6davGjBnj9HUBcIKpS68DsKzzT5P7/vvvC+w7ffq0UaVKFaNWrVrGuXPnDMMwjJ9//tm46667jPDwcMPLy8uIjIw0brvtNmPevHkFzrlq1Srj3nvvNSpWrGj4+voaHTt2NHbv3u3wGYV5Kp9hGEZGRobxyCOPGFWqVDG8vLyM8PBwo1OnTsavv/5qP+a1114z6tSpY/j4+BjVq1c3Jk+ebCxYsKDAk1z27dtntG3b1ggICDAk2T//Yk+CMQzD+Oqrr4zbbrvNqFChguHr62vcfPPNxocfflion+PFnoxzOevXrzd69uxpREVFGV5eXkZgYKDRrFkzY9q0aUZWVtZlf0ZvvfWWUbduXcPLy8uQZIwbN86+rzC/tzFjxhhNmjQxgoOD7T/D4cOHG8eOHStU7QAAlHWbNm0yevbsaURERBienp5GeHi40aNHD2Pjxo0Fjj3/5L2jR49ect8/nTlzxhgxYoQRHh5ulC9f3rj55puNTZs2GUFBQcbw4cPtx13qqXwVKlQo1OcUNk8V5ql85507d85YtGiRcdtttxkhISGGp6enUalSJaNDhw7GkiVL7E8IvlQWGzt2rBEdHW2UK1euwLW9//77Rnx8vBEYGGj4+PgYVatWNXr27GmsWbPGMAzD+PPPP42EhASjbt26RoUKFQx/f3+jYcOGxowZM+z5FkDJsBnGReaGAIALLFy4UP369dP3339/yduoAQAAcHU2btyoW265RW+++aZ69+5tdjkAcFlM5QMAAACAUmr16tXatGmTGjduLF9fX/3888+aMmWKatWqdckHnACAldCYAgAAAIBSKjAwUKtWrdLMmTN14sQJhYWFqUOHDpo8ebLDE/QAwKqYygcAAAAAAABTFM9jGgAAAAAAAIAiojEFAAAAAAAAU9CYAgAAAAAAgClY/FxSfn6+Dh06pICAANlsNrPLAQAApYxhGDpx4oSio6NVrlzp/96PbAQAAK5GUbIRjSlJhw4dUuXKlc0uAwAAlHIHDx5UbGys2WVcNbIRAAAoDoXJRjSmJAUEBEj6+wcWGBhoWh1169ZVWlqaoqKi9Ouvv5pWBwAAKJqsrCxVrlzZnilKO6tkoyshOwEAYE1FyUY0piT7LeqBgYGmhq/zt7eVK1fO0iEQAABcnLtMe7NKNroSshMAANZWmGxU+hdBAAAAAAAAQKlEY8pN3Hbbbbr22mt12223mV0KAACApZGbAACwDqbyuYnffvtNqampyszMNLsUAAAASyM3AQBgHTSmLMTf318BAQHy9/cv0bEAYGV5eXk6e/as2WUA8vb2vuLjjlGynM0/5CYAKIjMhaLw8vKSh4dHsZyLxpSFXM3TZHgSDQB3YxiGDh8+rL/++svsUgBJfy+wHRcXJ29vb7NLwf9xNv+QmwDg/yNzwVkVK1ZUZGTkVT/8hcYUAMCSzgek8PBw+fn5uc3TzlA65efn69ChQ0pLS1OVKlX4+wgAcBtkLhSVYRg6deqUjhw5IkmKioq6qvPRmAIAWE5eXp49IIWGhppdDiBJqlSpkg4dOqRz587Jy8vL7HIAALhqZC44y9fXV5J05MgRhYeHX9W0PhZKAABYzvn1Dfz8/EyuBPj/zk/hy8vLM7kSAACKB5kLV+P835urXZuMO6Ys5NFHH1VGRoaCg4M1bdq0Io2dPXu2Tpw4oYCAAA0ZMsRFFQJAyeJWclgJfx+tx9nsRG4CAEf8Ow7OKK6/NzbDMIxiOVMplpWVpaCgIGVmZiowMNC0OmJjY5WamqqYmBilpKSU2FgAsJozZ85o7969iouLU/ny5c0uB5B0+b+XVskSxaW0XI+z+YfcBAB/I3PhahRXNmIqHwAApdC6detks9nsT9BZuHChKlas6PLPbdWqlYYNG+byzymMxMREXX/99WaXAQAASqF9+/bJZrNpy5YthR7jirzlTB2uPI8ZmMrnJl577TWdOXOGLjcAt5ecnFxin9W+ffsij0lISNCiRYskSR4eHoqOjlanTp00adIkBQcHF3eJdr169VLHjh2L7Xzr1q1TfHy8MjIyHALY8uXLS2zh7/fee0+zZs3STz/9pLy8PFWvXl09e/bUkCFDFBISolGjRmno0KH24xMSEvTXX3/p/fffL5H6UHqRmwDgykoyc0nO5a6DBw8qMTFRn376qY4dO6aoqCjdcccdevrpp6+4mHvlypWVlpamsLCwQn9eceetovj99981ceJErV69WkePHlV0dLRuvvlmjRw5Uk2aNClwPZfKclZEY8pNtG3b1uwSAAD/p3379kpKStK5c+e0Y8cO3X///frrr7/01ltvuewzfX197U9HcaWQkBCXf4YkPfHEE3ruuec0fPhwTZo0SdHR0dq9e7fmzZunN954Q4888oj8/f3l7+9fIvXAvZCbAKD0++OPP9SsWTPVrl1bb731luLi4rR9+3Y9+uij+vTTT/XNN99cMrfk5ubK29tbkZGRRfrMkspbF/rhhx/UunVr1a9fX/Pnz1fdunV14sQJffDBBxo5cqTWr18vDw+PIl+PVTCVDwCAYubj46PIyEjFxsaqbdu26tWrl1atWuVwTFJSkurVq6fy5curbt26mjNnjn3f+Vuxly5dqubNm6t8+fK69tprtW7dukt+5sVuLV+5cqWaNGmi8uXLKywsTD169LDvW7x4sZo0aaKAgABFRkaqd+/eOnLkiP3z4+PjJUnBwcGy2WxKSEiQVHAqX0ZGhu677z4FBwfLz89PHTp00O7duwvU9dlnn6levXry9/dX+/btlZaWdslr+e677zRp0iS98MILmjZtmpo3b65q1aqpTZs2eu+999S3b19JjlP5EhMTtWjRIn3wwQey2Wyy2Wz2n1dqaqp69eql4OBghYaGqlu3btq3b5/989atW6ebbrpJFSpUUMWKFXXLLbdo//79l6wPAACY76GHHpK3t7dWrVql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+UX3/frrrzp27JimTJmif/3rX6pbt26BO5i8vb0lSXl5eZf8jGuuuUbnzp2zByxJSk9P12+//XZV0+F69+6t7OxshwXh/+n8AqQX8vb2LlBvo0aNtHv3boWHhxf4eQcFBdmPu+GGGzR27Fht3LhR9evX15IlS5yuHyXH2fxDbgKA0i00NFRt2rTRnDlzdPr0aYd9hw8f1ptvvqlevXoV6S6junXr6vvvv3fY9sMPP1xVnenp6dq5c6eefPJJtW7d2j7FsCiuv/56XXPNNXrhhRcuui7V5XKR5JjlrrnmGvn4+OjAgQMFclHlypXtx1WqVEkJCQlavHixZs6cqZdffrlINRcVa0xZyPz5800ZCwBwrVatWunaa6/VpEmTNHv2bCUmJurhhx9WYGCgOnTooJycHP3www/KyMjQiBEj7OP+97//qVatWqpXr55mzJihjIwMh7WhLmfcuHFq3bq1atSoobvvvlvnzp3Tp59+qtGjR6tKlSry9vbWrFmzNGjQIG3btk3PPvusw/iqVavKZrPpo48+UseOHeXr6yt/f3+HY2rVqqVu3brpgQce0Pz58xUQEKAxY8YoJiZG3bp1c/rn1bRpU40ePVojR45UamqqunfvrujoaP3++++aN2+eWrRooUceeaTAuGrVqumzzz7Trl27FBoaqqCgIN1zzz2aNm2aunXrpmeeeUaxsbE6cOCAli9frkcffVRnz57Vyy+/rK5duyo6Olq7du3Sb7/9pvvuu8/p+lFynM0/5CYAKP1mz56t5s2bq127dpowYYLi4uK0fft2Pfroo4qJibni2lAXGjhwoKZPn67HHntM/fv315YtW7Rw4UJJzk+jO/9E4JdffllRUVE6cOCAxowZU6Rz2Gw2JSUl6fbbb9ett96qxx9/XHXr1lV2drY+/PBDrVq1yr5w+T9dLMsFBARo1KhRGj58uPLz89WiRQtlZWVp48aN8vf3V9++ffX000+rcePGuvbaa5WTk6OPPvrI5etvcscUAAAlYMSIEXrllVd08OBBDRgwQK+++qoWLlyoBg0aqGXLllq4cGGBO6amTJmi5557Ttddd52++uorffDBB4V+KkqrVq30zjvvaOXKlbr++ut122232e9sqlSpkhYuXKh33nlH11xzjaZMmaLnn3/eYXxMTIzGjx+vMWPGKCIiQkOGDLno5yQlJalx48bq3LmzmjVrJsMw9MknnxRp4fKLee6557RkyRJ9++23ateuna699lqNGDFCDRs2dFgg/p8eeOAB1alTR02aNFGlSpX09ddfy8/PT19++aWqVKmiHj16qF69err//vt1+vRpBQYGys/PT7/++qv+/e9/q3bt2nrwwQc1ZMgQDRw48KrqBwAArlWrVi398MMPqlGjhnr16qUaNWrowQcfVHx8vDZt2mRf/Luw4uLi9O6772r58uVq2LCh5s6da38qn4+Pj1M1litXTkuXLtXmzZtVv359DR8+3L64elHcdNNN9mt94IEHVK9ePXXt2lXbt2/XzJkzLzrmUlnu2Wef1dNPP63JkyerXr16ateunT788EN7DvX29tbYsWPVsGFD3XrrrfLw8NDSpUuduv7CshmFmTTp5rKyshQUFKTMzEwFBga65DOSk5Ndct7z2rdv79LzA0BJOnPmjPbu3au4uDiVL1/e7HJK3L59+xQXF6effvpJ119/vdnl4P9c7u9lSWSJkuRu1wMAuLiynrmuZOLEiZo3b54OHjxodimWVFzZiKl8AAAAAACgzJszZ45uvPFGhYaG6uuvv9a0adMuedc4ig+NKQt5+OGHdfz4cYWEhOill14q0tg777xTR48eVaVKlfTOO++4qEIAAADraNKkiQ4fPqzIyMgiLVBLbgIAXMzu3bs1YcIEHT9+XFWqVNHIkSM1duxYs8tyezSmLOT48eNKT093auymTZuUmpqqmJiYYq4KAFDSqlWrVqjHEwNl3eHDh5WamlrkceQmAMDFzJgxQzNmzDC7jDKHxc8BAAAAAABgCu6YchN79uwxuwQAAIBSgdwEAIB10JhyE84+vhIAAKCsITcBAGAdTOUDAAAAAACAKWhMAQAAAAAAwBRM5XMTS5Ys0alTp+Tn56fevXubXQ4AAIBlkZsAALAOGlNuYvTo0fbHHhOwAAAALo3cBACAdTCVDwCAYpSQkCCbzaZBgwYV2Dd48GDZbDYlJCSUfGFFNHDgQNlsNs2cOfOKx7733nu65ppr5OPjo2uuuUYrVqxwfYEAAKBMK82ZKzExUXXr1lWFChUUHBys22+/Xd9+++0Vx82cOVN16tSRr6+vKleurOHDh+vMmTMlULFrcceUhfTv3185OTlOPSlm6tSp9lvSAQDmqly5spYuXaoZM2bI19dXknTmzBm99dZbqlKlisnVXdn777+vb7/9VtHR0Vc8dtOmTerVq5eeffZZde/eXStWrNBdd92lDRs2qGnTpiVQLcoyZ/MPuQkA3ENpzVy1a9fW7NmzVb16dZ0+fVozZsxQ27Zt9fvvv6tSpUoXHfPmm29qzJgxeu2119S8eXP99ttv9sbbjBkzSrD64scdUxYSHx+v9u3bKz4+vshje/furQEDBnA7OgBYQKNGjVSlShUtX77cvm358uWqXLmybrjhBodjDcPQ1KlTVb16dfn6+uq6667Tu+++a9+fl5en/v37Ky4uTr6+vqpTp45efPFFh3MkJCTojjvu0PPPP6+oqCiFhobqoYce0tmzZ4tce2pqqoYMGaI333xTXl5eVzx+5syZatOmjcaOHau6detq7Nixat26daHutAKulrP5h9wEAO6htGau3r176/bbb1f16tV17bXXavr06crKytLWrVsvOWbTpk265ZZb1Lt3b1WrVk1t27bVf/7zH/3www9F+mwrojEFAIAL9OvXT0lJSfb3r732mu6///4Cxz355JNKSkrS3LlztX37dg0fPlx9+vTR+vXrJUn5+fmKjY3V22+/rR07dujpp5/W448/rrffftvhPGvXrtWePXu0du1aLVq0SAsXLtTChQvt+xMTE1WtWrXL1pyfn697771Xjz76qK699tpCXeemTZvUtm1bh23t2rXTxo0bCzUeAADgapTGzPVPubm5evnllxUUFKTrrrvukse1aNFCmzdv1nfffSdJ+uOPP/TJJ5+oU6dOhf4sq6IxBQAoVaZPn67Y2FjFxsZq3bp1Dvv27t1r3zd06NACY7t27Wrff6GFCxfa9/3zWzdn3XvvvdqwYYP27dun/fv36+uvv1afPn0cjjl58qSmT5+u1157Te3atVP16tWVkJCgPn36aP78+ZIkLy8vjR8/XjfeeKPi4uJ0zz33KCEhoUBICg4O1uzZs1W3bl117txZnTp10ueff27fHxYWpho1aly25ueee06enp56+OGHC32dhw8fVkREhMO2iIgIHT58uNDnAAAA1kPmcl3mkqSPPvpI/v7+Kl++vGbMmKHVq1crLCzsksfffffdevbZZ9WiRQt5eXmpRo0aio+P15gxY4ry47Ik1piykJSUFOXl5cnDw+Oi/wBfTk5Ojv3PzqxRBQClRVZWllJTUyU5/n+f9Pct2Of3ZWRkFBh79OhR+/4LnTx50r7v1KlTV11nWFiYOnXqpEWLFskwDHXq1KlA2NixY4fOnDmjNm3aOGzPzc11uP183rx5evXVV7V//36dPn1aubm5uv766x3GXHvttfLw8LC/j4qK0i+//GJ/P2TIEA0ZMuSS9W7evFkvvviifvzxR9lstiJd64XHG4ZR5HMAzti1a5fOnTsnT09P1alTp9DjyE0AcGVkLtdkrvPi4+O1ZcsWHTt2TK+88oruuusuffvttwoPD7/o8evWrdPEiRM1Z84cNW3aVL///rseeeQRRUVF6amnnrri51mZqXdMzZ07Vw0bNlRgYKACAwPVrFkzffrpp/b951fZ/+fr5ptvdjhHTk6Ohg4dqrCwMFWoUEFdu3ZVSkpKSV9KsRgzZowGDRrkVMezRo0aKl++fKE6swBQmgUGBiomJkYxMTEF/oPSw8PDvi84OLjA2EqVKtn3X6hChQr2fcW1IPL999+vhQsXatGiRRe9pTw/P1+S9PHHH2vLli32144dO+xrHrz99tsaPny47r//fq1atUpbtmxRv379lJub63CuC9eDstls9vMXxldffaUjR46oSpUq8vT0lKenp/bv36+RI0de9nb0yMjIAndHHTlypMBdVLgyclHRtW7dWvXr11fr1q2LNI7cBABXRuZyTeY6r0KFCqpZs6ZuvvlmLViwQJ6enlqwYMElj3/qqad07733asCAAWrQoIG6d++uSZMmafLkyU59vpWYesdUbGyspkyZopo1a0qSFi1apG7duumnn36yr23Rvn17h/mi3t7eDucYNmyYPvzwQy1dulShoaEaOXKkOnfurM2bNzt0MQEA7mHEiBEaMWLERffFxcVd9j/CV65cecl9CQkJxf5I4fbt29vDTLt27Qrsv+aaa+Tj46MDBw6oZcuWFz3HV199pebNm2vw4MH2bXv27CnWOqW/b4O//fbbHba1a9dO9957r/r163fJcc2aNdPq1as1fPhw+7ZVq1apefPmxV6juyMXAQCshMzlmsx1KYZhFLgz7Z9OnTqlcuUc7y3y8PCQYRgyDMPV5bmUqY2pLl26OLyfOHGi5s6dq2+++cYewHx8fBQZGXnR8ZmZmVqwYIHeeOMNe5hevHixKleurDVr1lz0L6S7atasmY4ePXrJR0sCAEqeh4eHdu7caf/zhQICAjRq1CgNHz5c+fn5atGi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OHDJO4WuueaaAusvffPNN5f93K+++koJCQnq3r27pL/XP7hw8U6zeHt768Ybb9SuXbsctv/222+qWrWqSVWhrCE3AcCVkbmslblSU1MVHx+vxo0bKykpSeXKuc+S4TSm3ER2drZOnDih7Oxss0sBAPwfDw8P7dy50/7nCwUEBGjUqFEaPny48vPz1aJFC2VlZWnjxo3y9/dX3759NWjQIL3wwgsaMWKEBg4cqM2bN2vhwoWX/dyaNWtq+fLl6tKli2w2m5566imnvpW77777FBMTo8mTJ1/ymAMHDuj48eM6cOCA8vLytGXLFnsN/v7+kv5uAkyePNke2h599FH16tVLt956q+Lj45WcnKwPP/zQYS0IwJXITQDgXtw9cx06dEitWrVSlSpV9Pzzz+vo0aP2fZGRkfY/X5i5zme0Q4cOSZL9i8HIyEiHcWajMWUhsbGxqlChgoKDg4s8tnbt2goKClJERIQLKgMAOOtKt6g/++yzCg8P1+TJk/XHH3+oYsWKatSokR5//HFJfy+G+d5772n48OGaM2eObrrpJvsjhy9lxowZuv/++9W8eXOFhYXpsccec2oNhwMHDlzx27inn35aixYtsr8/v07D2rVr1apVK0l/h6DMzEz7Md27d9e8efM0efJkPfzww6pTp47ee+89tWjRosg1omxzNv+QmwDA/bhz5lq1apV+//13/f7774qNjXXY988piBdmrpUrV6pfv37293fffbckady4cUpMTCxyna5iM5yZSOlmsrKyFBQUpMzMzGKb43qh5ORkl5z3vPbt27v0/ABQks6cOaO9e/cqLi5O5cuXN7scQNLl/16WRJYoSe52PQCAiyNz4WoUVzZyn0mJAAAAAAAAKFVoTAEAAAAAAMAUNKYAAAAAAABgChY/t5DnnntOWVlZCgwM1GOPPVaksU888YT++usvVaxYURMnTnRRhQAAANZxzz336NixYwoLC9Obb75Z6HHkJgAArIPGlIX88ssvSk9PV2hoaJHHLlq0SKmpqYqJiSFgAQCAMmH9+vX2/FMU5CYAAKyDqXwAAMvKz883uwTAjgcZAwDcFZkLziiuvzfcMeUmPv30U509e1ZeXl5mlwIAV83b21vlypXToUOHVKlSJXl7e8tms5ldFsowwzB09OhR2Ww2/l3rBshNAPA3MhecYRiGcnNzdfToUZUrV07e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",
      "text/plain": [
       "<Figure size 1200x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# graphing distribution\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# Data series\n",
    "x = (authordf['Replication Cite no.']/(2025-authordf['Replication Year']))\n",
    "y = (authordf['AuthorID average other cites']/(2025-authordf['Replication Year']))\n",
    "\n",
    "# Compute statistics for annotations\n",
    "x_mean, x_median = x.mean(), x.median()\n",
    "y_mean, y_median = y.mean(), y.median()\n",
    "\n",
    "# Create histograms\n",
    "fig, axes = plt.subplots(1, 2, figsize=(12, 6), sharey=False)\n",
    "\n",
    "# Left: Histogram for replications\n",
    "axes[0].hist(x, bins=20, color=(0.6,0.6,0.6), alpha=0.7, label='Replication Cites')\n",
    "axes[0].axvline(x_mean, color='black', linestyle='dotted', linewidth=2, label=f'Mean: {x_mean:.1f}')\n",
    "axes[0].axvline(x_median, color='black', linestyle='dashed', linewidth=2, label=f'Median: {x_median:.1f}')\n",
    "axes[0].set_title('Replication Cites')\n",
    "axes[0].set_xlabel('Citation Count')\n",
    "axes[0].set_ylabel('Frequency')\n",
    "axes[0].legend()\n",
    "\n",
    "# Right: Histogram for originals\n",
    "axes[1].hist(y, bins=20, color=(0.6,0.6,0.6), alpha=0.7, label='Original Cites')\n",
    "axes[1].axvline(y_mean, color='black', linestyle='dotted', linewidth=2, label=f'Mean: {y_mean:.1f}')\n",
    "axes[1].axvline(y_median, color='black', linestyle='dashed', linewidth=2, label=f'Median: {y_median:.1f}')\n",
    "axes[1].set_title('Original Cites')\n",
    "axes[1].set_xlabel('Citation Count')\n",
    "axes[1].legend()\n",
    "\n",
    "# Adjust the y-axis limits to scale histograms similarly\n",
    "max_height = max(axes[0].get_ylim()[1], axes[1].get_ylim()[1])\n",
    "axes[0].set_ylim(0, max_height)\n",
    "axes[1].set_ylim(0, max_height)\n",
    "\n",
    "# Display the plots\n",
    "plt.tight_layout()\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "6bb1074b-6322-461f-a199-03a956b9ebd0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Compared to papers citing original (average)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Replication cited more</th>\n",
       "      <td>0.430584</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Replication cited less</th>\n",
       "      <td>0.551308</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Replication cited the same</th>\n",
       "      <td>0.018109</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Number of papers</th>\n",
       "      <td>497.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                            Compared to papers citing original (average)\n",
       "Replication cited more                                          0.430584\n",
       "Replication cited less                                          0.551308\n",
       "Replication cited the same                                      0.018109\n",
       "Number of papers                                              497.000000"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Compared to papers citing original (average)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Replication cited more</th>\n",
       "      <td>0.476861</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Replication cited less</th>\n",
       "      <td>0.498994</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Replication cited the same</th>\n",
       "      <td>0.024145</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Number of papers</th>\n",
       "      <td>497.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                            Compared to papers citing original (average)\n",
       "Replication cited more                                          0.476861\n",
       "Replication cited less                                          0.498994\n",
       "Replication cited the same                                      0.024145\n",
       "Number of papers                                              497.000000"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# create a nice table that shows frequency of more/less citations\n",
    "# for mean - for table 4\n",
    "diffcites = []\n",
    "morethan = []\n",
    "lessthan = []\n",
    "equal = []\n",
    "diffcites = authordf['Replication Cite no.']-authordf['AuthorID average other cites']\n",
    "for i in diffcites:\n",
    "    if i > 0:\n",
    "        morethan += [i]\n",
    "    elif i < 0:\n",
    "        lessthan += [i]\n",
    "    elif i == 0:\n",
    "        equal += [i]\n",
    "\n",
    "originalshares = {'Replication cited more':(len(morethan)/(len(morethan)+len(lessthan)+len(equal))), 'Replication cited less':(len(lessthan)/(len(morethan)+len(lessthan)+len(equal))),\n",
    "                  'Replication cited the same':(len(equal)/(len(morethan)+len(lessthan)+len(equal))), 'Number of papers': int(len(morethan)+len(lessthan)+len(equal))}\n",
    "#moreorlessmedian=moreorless.copy()\n",
    "moreorless2=pd.DataFrame.from_dict(originalshares, orient='index', columns=[\"Compared to papers citing original (average)\"] )\n",
    "display(moreorless2)\n",
    "\n",
    "\n",
    "# create a nice table that shows frequency of more/less citations\n",
    "# for median\n",
    "diffcites = []\n",
    "morethan = []\n",
    "lessthan = []\n",
    "equal = []\n",
    "diffcites = authordf['Replication Cite no.']-authordf['AuthorID median other cites']\n",
    "for i in diffcites:\n",
    "    if i > 0:\n",
    "        morethan += [i]\n",
    "    elif i < 0:\n",
    "        lessthan += [i]\n",
    "    elif i == 0:\n",
    "        equal += [i]\n",
    "\n",
    "originalshares = {'Replication cited more':(len(morethan)/(len(morethan)+len(lessthan)+len(equal))), 'Replication cited less':(len(lessthan)/(len(morethan)+len(lessthan)+len(equal))),\n",
    "                  'Replication cited the same':(len(equal)/(len(morethan)+len(lessthan)+len(equal))), 'Number of papers': int(len(morethan)+len(lessthan)+len(equal))}\n",
    "#moreorlessmedian=moreorless.copy()\n",
    "moreorless2=pd.DataFrame.from_dict(originalshares, orient='index', columns=[\"Compared to papers citing original (average)\"] )\n",
    "display(moreorless2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "aad2f658-8564-473c-bb99-be5a2d96e603",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:        Ratio Citations   R-squared:                       0.000\n",
      "Model:                            OLS   Adj. R-squared:                  0.000\n",
      "Method:                 Least Squares   F-statistic:                       nan\n",
      "Date:                Mon, 09 Dec 2024   Prob (F-statistic):                nan\n",
      "Time:                        11:15:21   Log-Likelihood:                -1600.4\n",
      "No. Observations:                 497   AIC:                             3203.\n",
      "Df Residuals:                     496   BIC:                             3207.\n",
      "Df Model:                           0                                         \n",
      "Covariance Type:                  HC2                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Constant       2.3191      0.272      8.527      0.000       1.785       2.853\n",
      "==============================================================================\n",
      "Omnibus:                      849.980   Durbin-Watson:                   1.673\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):           452107.039\n",
      "Skew:                          10.252   Prob(JB):                         0.00\n",
      "Kurtosis:                     149.327   Cond. No.                         1.00\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors are heteroscedasticity robust (HC2)\n",
      "                         QuantReg Regression Results                          \n",
      "==============================================================================\n",
      "Dep. Variable:        Ratio Citations   Pseudo R-squared:           -3.914e-12\n",
      "Model:                       QuantReg   Bandwidth:                      0.8703\n",
      "Method:                 Least Squares   Sparsity:                        2.496\n",
      "Date:                Mon, 09 Dec 2024   No. Observations:                  497\n",
      "Time:                        11:15:21   Df Residuals:                      496\n",
      "                                        Df Model:                            0\n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Constant       0.7818      0.056     13.964      0.000       0.672       0.892\n",
      "==============================================================================\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:        Ratio Citations   R-squared:                       0.000\n",
      "Model:                            OLS   Adj. R-squared:                  0.000\n",
      "Method:                 Least Squares   F-statistic:                       nan\n",
      "Date:                Mon, 09 Dec 2024   Prob (F-statistic):                nan\n",
      "Time:                        11:15:21   Log-Likelihood:                -1837.2\n",
      "No. Observations:                 497   AIC:                             3676.\n",
      "Df Residuals:                     496   BIC:                             3681.\n",
      "Df Model:                           0                                         \n",
      "Covariance Type:                  HC2                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Constant       3.2704      0.438      7.468      0.000       2.410       4.131\n",
      "==============================================================================\n",
      "Omnibus:                      737.673   Durbin-Watson:                   1.887\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):           140381.465\n",
      "Skew:                           8.113   Prob(JB):                         0.00\n",
      "Kurtosis:                      83.720   Cond. No.                         1.00\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors are heteroscedasticity robust (HC2)\n",
      "                         QuantReg Regression Results                          \n",
      "==============================================================================\n",
      "Dep. Variable:        Ratio Citations   Pseudo R-squared:           -7.569e-09\n",
      "Model:                       QuantReg   Bandwidth:                       1.085\n",
      "Method:                 Least Squares   Sparsity:                        3.230\n",
      "Date:                Mon, 09 Dec 2024   No. Observations:                  497\n",
      "Time:                        11:15:21   Df Residuals:                      496\n",
      "                                        Df Model:                            0\n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Constant       1.0000      0.072     13.803      0.000       0.858       1.142\n",
      "==============================================================================\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Mean Ratio, Mean Same Author Counterfactual</th>\n",
       "      <th>Median Ratio, Mean Same Author Counterfactual</th>\n",
       "      <th>Mean Ratio, Median Same Author Counterfactual</th>\n",
       "      <th>Median Ratio, Median Same Author Counterfactual</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2.319089</td>\n",
       "      <td>0.781797</td>\n",
       "      <td>3.270405</td>\n",
       "      <td>0.999989</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.271958</td>\n",
       "      <td>0.055985</td>\n",
       "      <td>0.437932</td>\n",
       "      <td>0.072446</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.000002</td>\n",
       "      <td>0.000111</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.99988</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Mean Ratio, Mean Same Author Counterfactual  \\\n",
       "0                                    2.319089   \n",
       "1                                    0.271958   \n",
       "2                                    0.000002   \n",
       "\n",
       "  Median Ratio, Mean Same Author Counterfactual  \\\n",
       "0                                      0.781797   \n",
       "1                                      0.055985   \n",
       "2                                      0.000111   \n",
       "\n",
       "  Mean Ratio, Median Same Author Counterfactual  \\\n",
       "0                                      3.270405   \n",
       "1                                      0.437932   \n",
       "2                                           0.0   \n",
       "\n",
       "  Median Ratio, Median Same Author Counterfactual  \n",
       "0                                        0.999989  \n",
       "1                                        0.072446  \n",
       "2                                         0.99988  "
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# regression analysis - \n",
    "import statsmodels.api as sm \n",
    "from statsmodels.regression.quantile_regression import QuantReg\n",
    "# prepare data\n",
    "\n",
    "allest3=pd.DataFrame(columns=['Mean Ratio, Mean Same Author Counterfactual', 'Median Ratio, Mean Same Author Counterfactual','Mean Ratio, Median Same Author Counterfactual', 'Median Ratio, Median Same Author Counterfactual'])\n",
    "\n",
    "a=pd.DataFrame()\n",
    "a['Ratio Citations']=authordf['Replication Cite no.']/authordf['AuthorID average other cites']\n",
    "a['Constant']=1\n",
    "a=a.dropna()\n",
    "x = a['Constant']\n",
    "y=a['Ratio Citations']\n",
    "\n",
    "model = sm.OLS(y, x, missing='drop')\n",
    "results = model.fit(use_t=True, cov_type='HC2')\n",
    "allest3.at[0,'Mean Ratio, Mean Same Author Counterfactual']=results.params[0]\n",
    "allest3.at[1,'Mean Ratio, Mean Same Author Counterfactual']=results.bse[0]\n",
    "hypotheses = 'Constant = 1'\n",
    "t_test = results.t_test(hypotheses)\n",
    "allest3.at[2,'Mean Ratio, Mean Same Author Counterfactual']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "print(results.summary())\n",
    "\n",
    "quantile = 0.5\n",
    "model = sm.QuantReg(y, x)\n",
    "results = model.fit(q=quantile)\n",
    "allest3.at[0,'Median Ratio, Mean Same Author Counterfactual']=results.params[0]\n",
    "allest3.at[1,'Median Ratio, Mean Same Author Counterfactual']=results.bse[0]\n",
    "hypotheses = 'Constant = 1'\n",
    "t_test = results.t_test(hypotheses)\n",
    "allest3.at[2,'Median Ratio, Mean Same Author Counterfactual']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "print(results.summary())\n",
    "\n",
    "\n",
    "\n",
    "a=pd.DataFrame()\n",
    "a['Ratio Citations']=authordf['Replication Cite no.']/authordf['AuthorID median other cites']\n",
    "a['Constant']=1\n",
    "a=a.dropna()\n",
    "x = a['Constant']\n",
    "y=a['Ratio Citations']\n",
    "\n",
    "model = sm.OLS(y, x, missing='drop')\n",
    "results = model.fit(use_t=True, cov_type='HC2')\n",
    "allest3.at[0,'Mean Ratio, Median Same Author Counterfactual']=results.params[0]\n",
    "allest3.at[1,'Mean Ratio, Median Same Author Counterfactual']=results.bse[0]\n",
    "hypotheses = 'Constant = 1'\n",
    "t_test = results.t_test(hypotheses)\n",
    "allest3.at[2,'Mean Ratio, Median Same Author Counterfactual']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "print(results.summary())\n",
    "\n",
    "quantile = 0.5\n",
    "model = sm.QuantReg(y, x)\n",
    "results = model.fit(q=quantile)\n",
    "allest3.at[0,'Median Ratio, Median Same Author Counterfactual']=results.params[0]\n",
    "allest3.at[1,'Median Ratio, Median Same Author Counterfactual']=results.bse[0]\n",
    "hypotheses = 'Constant = 1'\n",
    "t_test = results.t_test(hypotheses)\n",
    "allest3.at[2,'Median Ratio, Median Same Author Counterfactual']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "print(results.summary())\n",
    "allest3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "985fc4bf-be15-4e46-9794-8e21c6aaacab",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_12ee3 caption {\n",
       "  text-align: center;\n",
       "  font-size: 150%;\n",
       "  color: blue;\n",
       "}\n",
       "#T_12ee3 td {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_12ee3 th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_12ee3 .true {\n",
       "  border-right: solid;\n",
       "  border-color: blue;\n",
       "  vertical-align: top;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_12ee3\">\n",
       "  <caption>Table 5: Mean/Median of Ratio of Replication Citations to Counterfactual Citations - Counterfactuals relevant to Authors</caption>\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_12ee3_level0_col0\" class=\"col_heading level0 col0\" colspan=\"2\">Traditional Counterfactual</th>\n",
       "      <th id=\"T_12ee3_level0_col2\" class=\"col_heading level0 col2\" colspan=\"4\">Same Original Counterfactual</th>\n",
       "      <th id=\"T_12ee3_level0_col6\" class=\"col_heading level0 col6\" colspan=\"4\">Same Author Counterfactual</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th class=\"blank level1\" >&nbsp;</th>\n",
       "      <th id=\"T_12ee3_level1_col0\" class=\"col_heading level1 col0\" >(I) Mean, Citation Ratio</th>\n",
       "      <th id=\"T_12ee3_level1_col1\" class=\"col_heading level1 col1\" >(II) Median, Citation Ratio</th>\n",
       "      <th id=\"T_12ee3_level1_col2\" class=\"col_heading level1 col2\" >(III) Mean, Mean Citation Ratio</th>\n",
       "      <th id=\"T_12ee3_level1_col3\" class=\"col_heading level1 col3\" >(IV) Median, Mean Citation Ratio</th>\n",
       "      <th id=\"T_12ee3_level1_col4\" class=\"col_heading level1 col4\" >(V) Mean, Median Citation Ratio</th>\n",
       "      <th id=\"T_12ee3_level1_col5\" class=\"col_heading level1 col5\" >(VI) Median, Median Citation Ratio</th>\n",
       "      <th id=\"T_12ee3_level1_col6\" class=\"col_heading level1 col6\" >(VII) Mean, Mean Citation Ratio</th>\n",
       "      <th id=\"T_12ee3_level1_col7\" class=\"col_heading level1 col7\" >(VIII) Median, Mean Citation Ratio</th>\n",
       "      <th id=\"T_12ee3_level1_col8\" class=\"col_heading level1 col8\" >(IX) Mean, Median Citation Ratio</th>\n",
       "      <th id=\"T_12ee3_level1_col9\" class=\"col_heading level1 col9\" >(X) Median, Median Citation Ratio</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_12ee3_level0_row0\" class=\"row_heading level0 row0\" >Mean/Median</th>\n",
       "      <td id=\"T_12ee3_row0_col0\" class=\"data row0 col0\" >0.35</td>\n",
       "      <td id=\"T_12ee3_row0_col1\" class=\"data row0 col1\" >0.11</td>\n",
       "      <td id=\"T_12ee3_row0_col2\" class=\"data row0 col2\" >1.12</td>\n",
       "      <td id=\"T_12ee3_row0_col3\" class=\"data row0 col3\" >0.52</td>\n",
       "      <td id=\"T_12ee3_row0_col4\" class=\"data row0 col4\" >2.19</td>\n",
       "      <td id=\"T_12ee3_row0_col5\" class=\"data row0 col5\" >0.95</td>\n",
       "      <td id=\"T_12ee3_row0_col6\" class=\"data row0 col6\" >2.32</td>\n",
       "      <td id=\"T_12ee3_row0_col7\" class=\"data row0 col7\" >0.78</td>\n",
       "      <td id=\"T_12ee3_row0_col8\" class=\"data row0 col8\" >3.27</td>\n",
       "      <td id=\"T_12ee3_row0_col9\" class=\"data row0 col9\" >1.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_12ee3_level0_row1\" class=\"row_heading level0 row1\" >Standard Error</th>\n",
       "      <td id=\"T_12ee3_row1_col0\" class=\"data row1 col0\" >0.15</td>\n",
       "      <td id=\"T_12ee3_row1_col1\" class=\"data row1 col1\" >0.01</td>\n",
       "      <td id=\"T_12ee3_row1_col2\" class=\"data row1 col2\" >0.12</td>\n",
       "      <td id=\"T_12ee3_row1_col3\" class=\"data row1 col3\" >0.04</td>\n",
       "      <td id=\"T_12ee3_row1_col4\" class=\"data row1 col4\" >0.21</td>\n",
       "      <td id=\"T_12ee3_row1_col5\" class=\"data row1 col5\" >0.07</td>\n",
       "      <td id=\"T_12ee3_row1_col6\" class=\"data row1 col6\" >0.27</td>\n",
       "      <td id=\"T_12ee3_row1_col7\" class=\"data row1 col7\" >0.06</td>\n",
       "      <td id=\"T_12ee3_row1_col8\" class=\"data row1 col8\" >0.44</td>\n",
       "      <td id=\"T_12ee3_row1_col9\" class=\"data row1 col9\" >0.07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_12ee3_level0_row2\" class=\"row_heading level0 row2\" >T-Stat</th>\n",
       "      <td id=\"T_12ee3_row2_col0\" class=\"data row2 col0\" >-4.29</td>\n",
       "      <td id=\"T_12ee3_row2_col1\" class=\"data row2 col1\" >-104.45</td>\n",
       "      <td id=\"T_12ee3_row2_col2\" class=\"data row2 col2\" >0.99</td>\n",
       "      <td id=\"T_12ee3_row2_col3\" class=\"data row2 col3\" >-13.06</td>\n",
       "      <td id=\"T_12ee3_row2_col4\" class=\"data row2 col4\" >5.79</td>\n",
       "      <td id=\"T_12ee3_row2_col5\" class=\"data row2 col5\" >-0.72</td>\n",
       "      <td id=\"T_12ee3_row2_col6\" class=\"data row2 col6\" >4.85</td>\n",
       "      <td id=\"T_12ee3_row2_col7\" class=\"data row2 col7\" >-3.90</td>\n",
       "      <td id=\"T_12ee3_row2_col8\" class=\"data row2 col8\" >5.18</td>\n",
       "      <td id=\"T_12ee3_row2_col9\" class=\"data row2 col9\" >-0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_12ee3_level0_row3\" class=\"row_heading level0 row3\" >P-value</th>\n",
       "      <td id=\"T_12ee3_row3_col0\" class=\"data row3 col0\" >0.00</td>\n",
       "      <td id=\"T_12ee3_row3_col1\" class=\"data row3 col1\" >0.00</td>\n",
       "      <td id=\"T_12ee3_row3_col2\" class=\"data row3 col2\" >0.32</td>\n",
       "      <td id=\"T_12ee3_row3_col3\" class=\"data row3 col3\" >0.00</td>\n",
       "      <td id=\"T_12ee3_row3_col4\" class=\"data row3 col4\" >0.00</td>\n",
       "      <td id=\"T_12ee3_row3_col5\" class=\"data row3 col5\" >0.47</td>\n",
       "      <td id=\"T_12ee3_row3_col6\" class=\"data row3 col6\" >0.00</td>\n",
       "      <td id=\"T_12ee3_row3_col7\" class=\"data row3 col7\" >0.00</td>\n",
       "      <td id=\"T_12ee3_row3_col8\" class=\"data row3 col8\" >0.00</td>\n",
       "      <td id=\"T_12ee3_row3_col9\" class=\"data row3 col9\" >1.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7f4c2f38f610>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Notes: this table provides means and medians of the ratio of replication citations to counterfactual citations, for various counterfactuals relevant to authors. It also provides the standard errors of these means and medians which allows to analyze whether the ratio is statistically significantly \n",
      "different from one. The T-Stat and P-value rows give the t-statistic and p-value of this test. Columns I and II are based on table 2, columns III to VI on table 3, and columns VIII to X on table 4.  \n"
     ]
    }
   ],
   "source": [
    "cols = pd.MultiIndex.from_tuples([(\"Traditional Counterfactual\", \"(I) Mean, Citation Ratio\"), \n",
    "                                  (\"Traditional Counterfactual\", \"(II) Median, Citation Ratio\"),\n",
    "                                  (\"Same Original Counterfactual\", \"(III) Mean, Mean Citation Ratio\"), \n",
    "                                  (\"Same Original Counterfactual\", \"(IV) Median, Mean Citation Ratio\"),\n",
    "                                    (\"Same Original Counterfactual\", \"(V) Mean, Median Citation Ratio\"), \n",
    "                                  (\"Same Original Counterfactual\", \"(VI) Median, Median Citation Ratio\"),\n",
    "                                    (\"Same Author Counterfactual\", \"(VII) Mean, Mean Citation Ratio\"), \n",
    "                                  (\"Same Author Counterfactual\", \"(VIII) Median, Mean Citation Ratio\"),\n",
    "                                    (\"Same Author Counterfactual\", \"(IX) Mean, Median Citation Ratio\"), \n",
    "                                  (\"Same Author Counterfactual\", \"(X) Median, Median Citation Ratio\")])\n",
    "summarydf = pd.DataFrame(columns=cols)\n",
    "summarydf[(\"Traditional Counterfactual\", \"(I) Mean, Citation Ratio\")]=allest1['Mean Ratio, Standard Counterfactual']\n",
    "summarydf[(\"Traditional Counterfactual\", \"(II) Median, Citation Ratio\")]=allest1['Median Ratio, Standard Counterfactual']\n",
    "summarydf[(\"Same Original Counterfactual\", \"(III) Mean, Mean Citation Ratio\")]=allest2['Mean Ratio, Mean Same Original Counterfactual']\n",
    "summarydf[(\"Same Original Counterfactual\", \"(IV) Median, Mean Citation Ratio\")]=allest2['Median Ratio, Mean Same Original Counterfactual']\n",
    "summarydf[(\"Same Original Counterfactual\", \"(V) Mean, Median Citation Ratio\")]=allest2['Mean Ratio, Median Same Original Counterfactual']\n",
    "summarydf[(\"Same Original Counterfactual\", \"(VI) Median, Median Citation Ratio\")]=allest2['Median Ratio, Median Same Original Counterfactual']\n",
    "\n",
    "summarydf[(\"Same Author Counterfactual\", \"(VII) Mean, Mean Citation Ratio\")]=allest3['Mean Ratio, Mean Same Author Counterfactual']\n",
    "summarydf[(\"Same Author Counterfactual\", \"(VIII) Median, Mean Citation Ratio\")]=allest3['Median Ratio, Mean Same Author Counterfactual']\n",
    "summarydf[(\"Same Author Counterfactual\", \"(IX) Mean, Median Citation Ratio\")]=allest3['Mean Ratio, Median Same Author Counterfactual']\n",
    "summarydf[(\"Same Author Counterfactual\", \"(X) Median, Median Citation Ratio\")]=allest3['Median Ratio, Median Same Author Counterfactual']\n",
    "\n",
    "\n",
    "\n",
    "summarydf.index=['Mean/Median', 'Standard Error', 'P-value']\n",
    "\n",
    "summarydf.loc['T-Stat']=(summarydf.loc['Mean/Median']-1)/summarydf.loc['Standard Error']\n",
    "summarydf=summarydf.reindex(['Mean/Median', 'Standard Error', 'T-Stat', 'P-value'])\n",
    "\n",
    "display(summarydf.style.set_caption(\"Table 5: Mean/Median of Ratio of Replication Citations to Counterfactual Citations - Counterfactuals relevant to Authors\").format(precision=2).set_table_styles(styles))\n",
    "print('Notes: this table provides means and medians of the ratio of replication citations to counterfactual citations, for various counterfactuals relevant to authors. It also provides the standard errors of these means and medians which allows to analyze whether the ratio is statistically significantly \\ndifferent from one. The T-Stat and P-value rows give the t-statistic and p-value of this test. Columns I and II are based on table 2, columns III to VI on table 3, and columns VIII to X on table 4.  ')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dd06b70a-96f5-44aa-ae13-a54a9d532336",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "id": "0e51e15d-ca43-4c81-8e0e-3206a5f022e4",
   "metadata": {},
   "outputs": [],
   "source": [
    "#Q4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "ad6d4eac-f7b8-46bb-91de-d0d6caed68aa",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n",
      "1\n",
      "2\n",
      "3\n",
      "4\n",
      "5\n",
      "6\n",
      "7\n",
      "8\n",
      "9\n",
      "10\n",
      "11\n",
      "12\n",
      "13\n",
      "14\n",
      "15\n",
      "16\n",
      "17\n",
      "18\n",
      "19\n",
      "20\n",
      "21\n",
      "22\n",
      "23\n",
      "24\n",
      "25\n",
      "26\n",
      "27\n",
      "28\n",
      "29\n",
      "30\n",
      "31\n",
      "32\n",
      "33\n",
      "34\n",
      "35\n",
      "36\n",
      "37\n",
      "38\n",
      "39\n",
      "40\n",
      "41\n",
      "42\n",
      "43\n",
      "44\n",
      "45\n",
      "46\n",
      "47\n",
      "48\n",
      "49\n",
      "50\n",
      "51\n",
      "52\n",
      "53\n",
      "54\n",
      "55\n",
      "56\n",
      "57\n",
      "58\n",
      "59\n",
      "60\n",
      "61\n",
      "62\n",
      "63\n",
      "64\n",
      "65\n",
      "66\n",
      "67\n",
      "68\n",
      "69\n",
      "70\n",
      "71\n",
      "72\n",
      "73\n",
      "74\n",
      "75\n",
      "76\n",
      "77\n",
      "78\n",
      "79\n",
      "80\n",
      "81\n",
      "82\n",
      "83\n",
      "84\n",
      "85\n",
      "86\n",
      "87\n",
      "88\n",
      "89\n",
      "90\n",
      "91\n",
      "92\n",
      "93\n",
      "94\n",
      "95\n",
      "96\n",
      "97\n",
      "98\n",
      "99\n",
      "100\n",
      "101\n",
      "102\n",
      "103\n",
      "104\n",
      "105\n",
      "106\n",
      "107\n",
      "108\n",
      "109\n",
      "110\n",
      "111\n",
      "112\n",
      "113\n",
      "114\n",
      "115\n",
      "116\n",
      "117\n",
      "118\n",
      "119\n",
      "120\n",
      "121\n",
      "122\n",
      "123\n",
      "124\n",
      "125\n",
      "126\n",
      "127\n",
      "128\n",
      "129\n",
      "130\n",
      "131\n",
      "132\n",
      "133\n",
      "134\n",
      "135\n",
      "136\n",
      "137\n",
      "138\n",
      "139\n",
      "140\n",
      "141\n",
      "142\n",
      "143\n",
      "144\n",
      "145\n",
      "146\n",
      "147\n",
      "148\n",
      "149\n",
      "150\n",
      "151\n",
      "152\n",
      "153\n",
      "154\n",
      "155\n",
      "156\n",
      "157\n",
      "158\n",
      "159\n",
      "160\n",
      "161\n",
      "162\n",
      "163\n",
      "164\n",
      "165\n",
      "166\n",
      "167\n",
      "168\n",
      "169\n",
      "170\n",
      "171\n",
      "172\n",
      "173\n",
      "174\n",
      "175\n",
      "176\n",
      "177\n",
      "178\n",
      "179\n",
      "180\n",
      "181\n",
      "182\n",
      "183\n",
      "184\n",
      "185\n",
      "186\n",
      "187\n",
      "188\n",
      "189\n",
      "190\n",
      "191\n",
      "192\n",
      "193\n",
      "194\n",
      "195\n",
      "196\n",
      "197\n",
      "198\n",
      "199\n",
      "200\n",
      "201\n",
      "202\n",
      "203\n",
      "204\n",
      "205\n",
      "206\n",
      "207\n",
      "208\n",
      "209\n",
      "210\n",
      "211\n",
      "212\n",
      "213\n",
      "214\n",
      "215\n",
      "216\n",
      "217\n",
      "218\n",
      "219\n",
      "220\n",
      "221\n",
      "222\n",
      "223\n",
      "224\n",
      "225\n",
      "226\n",
      "227\n",
      "228\n",
      "229\n",
      "230\n",
      "231\n",
      "232\n",
      "233\n",
      "234\n",
      "235\n",
      "236\n",
      "237\n",
      "238\n",
      "239\n",
      "240\n",
      "241\n",
      "242\n",
      "243\n",
      "244\n",
      "245\n",
      "246\n",
      "247\n",
      "248\n",
      "249\n",
      "250\n",
      "251\n",
      "252\n",
      "253\n",
      "254\n",
      "255\n",
      "256\n",
      "257\n",
      "258\n",
      "259\n",
      "260\n",
      "261\n",
      "262\n",
      "263\n",
      "264\n",
      "265\n",
      "266\n",
      "267\n",
      "268\n",
      "269\n",
      "270\n",
      "271\n",
      "272\n",
      "273\n",
      "274\n",
      "275\n",
      "276\n",
      "277\n",
      "278\n",
      "279\n",
      "280\n",
      "281\n",
      "282\n",
      "283\n",
      "284\n",
      "285\n",
      "286\n",
      "287\n",
      "288\n",
      "289\n",
      "290\n",
      "291\n",
      "292\n",
      "293\n",
      "294\n",
      "295\n",
      "296\n",
      "297\n",
      "298\n",
      "299\n",
      "300\n",
      "301\n",
      "302\n",
      "303\n",
      "304\n",
      "305\n",
      "306\n",
      "307\n",
      "308\n",
      "309\n",
      "310\n",
      "311\n",
      "312\n",
      "313\n",
      "314\n",
      "315\n",
      "316\n",
      "317\n",
      "318\n",
      "319\n",
      "320\n",
      "321\n",
      "322\n",
      "323\n",
      "324\n",
      "325\n",
      "326\n",
      "327\n",
      "328\n",
      "329\n",
      "330\n",
      "331\n",
      "332\n",
      "333\n",
      "334\n",
      "335\n",
      "336\n",
      "337\n",
      "338\n",
      "339\n",
      "340\n",
      "341\n",
      "342\n",
      "343\n",
      "344\n",
      "345\n",
      "346\n",
      "347\n",
      "348\n",
      "349\n",
      "350\n",
      "351\n",
      "352\n",
      "353\n",
      "354\n",
      "355\n",
      "356\n",
      "357\n",
      "358\n",
      "359\n",
      "360\n",
      "361\n",
      "362\n",
      "363\n",
      "364\n",
      "365\n",
      "366\n",
      "367\n",
      "368\n",
      "369\n",
      "370\n",
      "371\n",
      "372\n",
      "373\n",
      "374\n",
      "375\n",
      "376\n",
      "377\n",
      "378\n",
      "379\n",
      "380\n",
      "381\n",
      "382\n",
      "383\n",
      "384\n",
      "385\n",
      "386\n",
      "387\n",
      "388\n",
      "389\n",
      "390\n",
      "391\n",
      "392\n",
      "393\n",
      "394\n",
      "395\n",
      "396\n",
      "397\n",
      "398\n",
      "399\n",
      "400\n",
      "401\n",
      "402\n",
      "403\n",
      "404\n",
      "405\n",
      "406\n",
      "407\n",
      "408\n",
      "409\n",
      "410\n",
      "411\n",
      "412\n",
      "413\n",
      "414\n",
      "415\n",
      "416\n",
      "417\n",
      "418\n",
      "419\n",
      "420\n",
      "421\n",
      "422\n",
      "423\n",
      "424\n",
      "425\n",
      "426\n",
      "427\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>EID replication</th>\n",
       "      <th>replication</th>\n",
       "      <th>Confirmed (1,0)</th>\n",
       "      <th>Disconfirmed (1,0)</th>\n",
       "      <th>Mixed/Unclear (1,0)</th>\n",
       "      <th>Replication Cite no.</th>\n",
       "      <th>Replication Year</th>\n",
       "      <th>Replication authors ID</th>\n",
       "      <th>Replication authors Name</th>\n",
       "      <th>Replication page count</th>\n",
       "      <th>...</th>\n",
       "      <th>Average replication authors nr authors</th>\n",
       "      <th>Median replication authors citations</th>\n",
       "      <th>Median replication authors citations (for those with pages only)</th>\n",
       "      <th>Median replication authors page count</th>\n",
       "      <th>Median replication authors nr authors</th>\n",
       "      <th>in same author a</th>\n",
       "      <th>in same author b</th>\n",
       "      <th>Citations of papers in same publication</th>\n",
       "      <th>Pages of papers in same publication</th>\n",
       "      <th>Nr authors of papers in same publication</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2-s2.0-84945239824</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>221.0</td>\n",
       "      <td>2015</td>\n",
       "      <td>[56429410400, 23007364800]</td>\n",
       "      <td>[Abascal M., Baldassarri D.]</td>\n",
       "      <td>61.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[1.0, 1.5]</td>\n",
       "      <td>[110.0, 60.0]</td>\n",
       "      <td>[110.0, 60.0]</td>\n",
       "      <td>[25.0, 50.0]</td>\n",
       "      <td>[1.0, 1.5]</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>[36, 102, 27, 22, 15]</td>\n",
       "      <td>[41, 32, 56, 43, 47]</td>\n",
       "      <td>[5, 3, 1, 6, 1]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2-s2.0-84862603811</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>2012</td>\n",
       "      <td>[6603457657, 54682154400]</td>\n",
       "      <td>[Abrevaya J., Puzzello L.]</td>\n",
       "      <td>13.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[2.0, None]</td>\n",
       "      <td>[37.0, None]</td>\n",
       "      <td>[37.0, None]</td>\n",
       "      <td>[6.0, None]</td>\n",
       "      <td>[2.0, None]</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>[28, 23, 872, 271, 278, 185, 405, 71, 58, 231,...</td>\n",
       "      <td>[31, 19, 29, 35, 33, 32, 38, 29, 25, 35, 31, 3...</td>\n",
       "      <td>[3, 1, 2, 2, 3, 2, 3, 1, 3, 5, 3, 1, 2, 3, 1, ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2-s2.0-74749088503</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>203.0</td>\n",
       "      <td>2010</td>\n",
       "      <td>[14055611300, 15022069100]</td>\n",
       "      <td>[Adams C.P., Brantner V.V.]</td>\n",
       "      <td>12.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[2.0, None]</td>\n",
       "      <td>[21.0, None]</td>\n",
       "      <td>[21.0, None]</td>\n",
       "      <td>[13.5, None]</td>\n",
       "      <td>[2.0, None]</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>[33, 19, 35, 8, 13, 99, 9]</td>\n",
       "      <td>[16, 18, 8, 19, 16, 20, 12]</td>\n",
       "      <td>[3, 1, 1, 1, 4, 1, 2]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2-s2.0-28844506216</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>2006</td>\n",
       "      <td>[6701392125, 7004557832, 55665967500]</td>\n",
       "      <td>[Agell J., Ohlsson H., Thoursie P.S.]</td>\n",
       "      <td>8.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[None, 2.0, None]</td>\n",
       "      <td>[None, 21.0, None]</td>\n",
       "      <td>[None, 21.0, None]</td>\n",
       "      <td>[None, 12.0, None]</td>\n",
       "      <td>[None, 2.0, None]</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>[14, 5, 39, 15, 149, 60, 29, 11]</td>\n",
       "      <td>[24, 20, 30, 3, 33, 25, 35, 40]</td>\n",
       "      <td>[2, 2, 2, 2, 2, 2, 2, 1]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2-s2.0-85043469203</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>24.0</td>\n",
       "      <td>2019</td>\n",
       "      <td>[55372664800, 55974760200, 22953479300]</td>\n",
       "      <td>[Agovino M., Bartoletto S., Garofalo A.]</td>\n",
       "      <td>21.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[3.5833333333333335, 4.0, 3.5]</td>\n",
       "      <td>[18.0, 6.0, 10.5]</td>\n",
       "      <td>[15.5, 5.0, 7.5]</td>\n",
       "      <td>[18.5, 28.0, 21.5]</td>\n",
       "      <td>[3.0, 4.0, 3.0]</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>[20, 7, 6, 17, 10, 17, 28, 38, 18, 10, 2, 8, 6]</td>\n",
       "      <td>[12, 7, 13, 12, 16, 11, 10, 10, 8, 10, 2, 12, 12]</td>\n",
       "      <td>[3, 2, 3, 3, 4, 1, 3, 2, 1, 2, 1, 2, 1]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>423</th>\n",
       "      <td>2-s2.0-84922596764</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2015</td>\n",
       "      <td>[55743639500]</td>\n",
       "      <td>[Zhou M.]</td>\n",
       "      <td>21.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>[6, 2, 3, 0]</td>\n",
       "      <td>[5, 9, 4, 6]</td>\n",
       "      <td>[2, 2, 2, 3]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>424</th>\n",
       "      <td>2-s2.0-0003300715</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>354.0</td>\n",
       "      <td>2001</td>\n",
       "      <td>[8217375200]</td>\n",
       "      <td>[Zhou X.]</td>\n",
       "      <td>13.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>[None]</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>[120, 176, 322, 240]</td>\n",
       "      <td>[35, 36, 34, 38]</td>\n",
       "      <td>[2, 2, 1, 2]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>425</th>\n",
       "      <td>2-s2.0-1142268816</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>29.0</td>\n",
       "      <td>2004</td>\n",
       "      <td>[57220597092, 7004783779, 6602124920]</td>\n",
       "      <td>[Zhu A., Ash M., Pollin R.]</td>\n",
       "      <td>9.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[None, 2.0, 3.0]</td>\n",
       "      <td>[None, 91.5, 66.0]</td>\n",
       "      <td>[None, 91.5, 66.0]</td>\n",
       "      <td>[None, 21.5, 19.0]</td>\n",
       "      <td>[None, 2.0, 3.0]</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>[1, 20, 4, 9, 45, 15]</td>\n",
       "      <td>[10, 17, 19, 19, 21, 19]</td>\n",
       "      <td>[1, 2, 2, 2, 1, 1]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>426</th>\n",
       "      <td>2-s2.0-84885967533</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>9.0</td>\n",
       "      <td>2013</td>\n",
       "      <td>[6506949090, 55894136200, 57486346800]</td>\n",
       "      <td>[Ziegelmeyer A., March C., Krugel S.]</td>\n",
       "      <td>10.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[None, None, None]</td>\n",
       "      <td>[None, None, None]</td>\n",
       "      <td>[None, None, None]</td>\n",
       "      <td>[None, None, None]</td>\n",
       "      <td>[None, None, None]</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>[84, 97, 161, 49, 145, 144, 419, 48, 39, 42, 2...</td>\n",
       "      <td>[32, 31, 31, 32, 31, 38, 27, 24, 28, 29, 25, 2...</td>\n",
       "      <td>[2, 1, 4, 3, 4, 2, 3, 2, 2, 2, 2, 2, 2, 1, 2, ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>427</th>\n",
       "      <td>2-s2.0-84860186774</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>35.0</td>\n",
       "      <td>2012</td>\n",
       "      <td>[6506949090, 51864380900, 23397900200]</td>\n",
       "      <td>[Ziegelmeyer A., Schmelz K., Ploner M.]</td>\n",
       "      <td>18.0</td>\n",
       "      <td>...</td>\n",
       "      <td>[3.0, None, 3.0]</td>\n",
       "      <td>[12.0, None, 9.0]</td>\n",
       "      <td>[12.0, None, 9.0]</td>\n",
       "      <td>[14.0, None, 11.0]</td>\n",
       "      <td>[3.0, None, 3.0]</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>[22, 2, 62, 30, 11]</td>\n",
       "      <td>[31, 18, 31, 19, 14]</td>\n",
       "      <td>[3, 2, 2, 2, 4]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>428 rows × 43 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        EID replication  replication  Confirmed (1,0)  Disconfirmed (1,0)  \\\n",
       "0    2-s2.0-84945239824          NaN                0                   1   \n",
       "1    2-s2.0-84862603811          NaN                0                   1   \n",
       "2    2-s2.0-74749088503          NaN                0                   0   \n",
       "3    2-s2.0-28844506216          NaN                0                   1   \n",
       "4    2-s2.0-85043469203          NaN                0                   0   \n",
       "..                  ...          ...              ...                 ...   \n",
       "423  2-s2.0-84922596764          NaN                0                   1   \n",
       "424   2-s2.0-0003300715          NaN                0                   1   \n",
       "425   2-s2.0-1142268816          NaN                0                   1   \n",
       "426  2-s2.0-84885967533          NaN                0                   0   \n",
       "427  2-s2.0-84860186774          NaN                0                   0   \n",
       "\n",
       "     Mixed/Unclear (1,0)  Replication Cite no.  Replication Year  \\\n",
       "0                      0                 221.0              2015   \n",
       "1                      0                  17.0              2012   \n",
       "2                      1                 203.0              2010   \n",
       "3                      0                  50.0              2006   \n",
       "4                      1                  24.0              2019   \n",
       "..                   ...                   ...               ...   \n",
       "423                    0                   2.0              2015   \n",
       "424                    0                 354.0              2001   \n",
       "425                    0                  29.0              2004   \n",
       "426                    1                   9.0              2013   \n",
       "427                    1                  35.0              2012   \n",
       "\n",
       "                      Replication authors ID  \\\n",
       "0                 [56429410400, 23007364800]   \n",
       "1                  [6603457657, 54682154400]   \n",
       "2                 [14055611300, 15022069100]   \n",
       "3      [6701392125, 7004557832, 55665967500]   \n",
       "4    [55372664800, 55974760200, 22953479300]   \n",
       "..                                       ...   \n",
       "423                            [55743639500]   \n",
       "424                             [8217375200]   \n",
       "425    [57220597092, 7004783779, 6602124920]   \n",
       "426   [6506949090, 55894136200, 57486346800]   \n",
       "427   [6506949090, 51864380900, 23397900200]   \n",
       "\n",
       "                     Replication authors Name  Replication page count  ...  \\\n",
       "0                [Abascal M., Baldassarri D.]                    61.0  ...   \n",
       "1                  [Abrevaya J., Puzzello L.]                    13.0  ...   \n",
       "2                 [Adams C.P., Brantner V.V.]                    12.0  ...   \n",
       "3       [Agell J., Ohlsson H., Thoursie P.S.]                     8.0  ...   \n",
       "4    [Agovino M., Bartoletto S., Garofalo A.]                    21.0  ...   \n",
       "..                                        ...                     ...  ...   \n",
       "423                                 [Zhou M.]                    21.0  ...   \n",
       "424                                 [Zhou X.]                    13.0  ...   \n",
       "425               [Zhu A., Ash M., Pollin R.]                     9.0  ...   \n",
       "426     [Ziegelmeyer A., March C., Krugel S.]                    10.0  ...   \n",
       "427   [Ziegelmeyer A., Schmelz K., Ploner M.]                    18.0  ...   \n",
       "\n",
       "    Average replication authors nr authors  \\\n",
       "0                               [1.0, 1.5]   \n",
       "1                              [2.0, None]   \n",
       "2                              [2.0, None]   \n",
       "3                        [None, 2.0, None]   \n",
       "4           [3.5833333333333335, 4.0, 3.5]   \n",
       "..                                     ...   \n",
       "423                                 [None]   \n",
       "424                                 [None]   \n",
       "425                       [None, 2.0, 3.0]   \n",
       "426                     [None, None, None]   \n",
       "427                       [3.0, None, 3.0]   \n",
       "\n",
       "    Median replication authors citations  \\\n",
       "0                          [110.0, 60.0]   \n",
       "1                           [37.0, None]   \n",
       "2                           [21.0, None]   \n",
       "3                     [None, 21.0, None]   \n",
       "4                      [18.0, 6.0, 10.5]   \n",
       "..                                   ...   \n",
       "423                               [None]   \n",
       "424                               [None]   \n",
       "425                   [None, 91.5, 66.0]   \n",
       "426                   [None, None, None]   \n",
       "427                    [12.0, None, 9.0]   \n",
       "\n",
       "    Median replication authors citations (for those with pages only)  \\\n",
       "0                                        [110.0, 60.0]                 \n",
       "1                                         [37.0, None]                 \n",
       "2                                         [21.0, None]                 \n",
       "3                                   [None, 21.0, None]                 \n",
       "4                                     [15.5, 5.0, 7.5]                 \n",
       "..                                                 ...                 \n",
       "423                                             [None]                 \n",
       "424                                             [None]                 \n",
       "425                                 [None, 91.5, 66.0]                 \n",
       "426                                 [None, None, None]                 \n",
       "427                                  [12.0, None, 9.0]                 \n",
       "\n",
       "    Median replication authors page count  \\\n",
       "0                            [25.0, 50.0]   \n",
       "1                             [6.0, None]   \n",
       "2                            [13.5, None]   \n",
       "3                      [None, 12.0, None]   \n",
       "4                      [18.5, 28.0, 21.5]   \n",
       "..                                    ...   \n",
       "423                                [None]   \n",
       "424                                [None]   \n",
       "425                    [None, 21.5, 19.0]   \n",
       "426                    [None, None, None]   \n",
       "427                    [14.0, None, 11.0]   \n",
       "\n",
       "    Median replication authors nr authors  in same author a in same author b  \\\n",
       "0                              [1.0, 1.5]                 1                0   \n",
       "1                             [2.0, None]                 0                0   \n",
       "2                             [2.0, None]                 0                0   \n",
       "3                       [None, 2.0, None]                 0                0   \n",
       "4                         [3.0, 4.0, 3.0]                 1                0   \n",
       "..                                    ...               ...              ...   \n",
       "423                                [None]                 0                1   \n",
       "424                                [None]                 0                1   \n",
       "425                      [None, 2.0, 3.0]                 0                0   \n",
       "426                    [None, None, None]                 0                0   \n",
       "427                      [3.0, None, 3.0]                 0                0   \n",
       "\n",
       "               Citations of papers in same publication  \\\n",
       "0                                [36, 102, 27, 22, 15]   \n",
       "1    [28, 23, 872, 271, 278, 185, 405, 71, 58, 231,...   \n",
       "2                           [33, 19, 35, 8, 13, 99, 9]   \n",
       "3                     [14, 5, 39, 15, 149, 60, 29, 11]   \n",
       "4      [20, 7, 6, 17, 10, 17, 28, 38, 18, 10, 2, 8, 6]   \n",
       "..                                                 ...   \n",
       "423                                       [6, 2, 3, 0]   \n",
       "424                               [120, 176, 322, 240]   \n",
       "425                              [1, 20, 4, 9, 45, 15]   \n",
       "426  [84, 97, 161, 49, 145, 144, 419, 48, 39, 42, 2...   \n",
       "427                                [22, 2, 62, 30, 11]   \n",
       "\n",
       "                   Pages of papers in same publication  \\\n",
       "0                                 [41, 32, 56, 43, 47]   \n",
       "1    [31, 19, 29, 35, 33, 32, 38, 29, 25, 35, 31, 3...   \n",
       "2                          [16, 18, 8, 19, 16, 20, 12]   \n",
       "3                      [24, 20, 30, 3, 33, 25, 35, 40]   \n",
       "4    [12, 7, 13, 12, 16, 11, 10, 10, 8, 10, 2, 12, 12]   \n",
       "..                                                 ...   \n",
       "423                                       [5, 9, 4, 6]   \n",
       "424                                   [35, 36, 34, 38]   \n",
       "425                           [10, 17, 19, 19, 21, 19]   \n",
       "426  [32, 31, 31, 32, 31, 38, 27, 24, 28, 29, 25, 2...   \n",
       "427                               [31, 18, 31, 19, 14]   \n",
       "\n",
       "              Nr authors of papers in same publication  \n",
       "0                                      [5, 3, 1, 6, 1]  \n",
       "1    [3, 1, 2, 2, 3, 2, 3, 1, 3, 5, 3, 1, 2, 3, 1, ...  \n",
       "2                                [3, 1, 1, 1, 4, 1, 2]  \n",
       "3                             [2, 2, 2, 2, 2, 2, 2, 1]  \n",
       "4              [3, 2, 3, 3, 4, 1, 3, 2, 1, 2, 1, 2, 1]  \n",
       "..                                                 ...  \n",
       "423                                       [2, 2, 2, 3]  \n",
       "424                                       [2, 2, 1, 2]  \n",
       "425                                 [1, 2, 2, 2, 1, 1]  \n",
       "426  [2, 1, 4, 3, 4, 2, 3, 2, 2, 2, 2, 2, 2, 1, 2, ...  \n",
       "427                                    [3, 2, 2, 2, 4]  \n",
       "\n",
       "[428 rows x 43 columns]"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Gets the citation count for each paper in same issue (or volume if issue isn't given) as each replication paper\n",
    "\n",
    "from pybliometrics.scopus import ScopusSearch #imports the scopus search API, may need to input API key for this\n",
    "pubcites = []\n",
    "numpages=[]\n",
    "numauthors=[]\n",
    "\n",
    "for i in range(0,len(replications)):\n",
    "#for i in range(206,207):\n",
    "    try:\n",
    "        print(i)\n",
    "        publicationcites = []\n",
    "        s = ScopusSearch('SRCID(%s) AND VOLUME(%s) AND ISSUE(%s) AND PUBYEAR = %s AND NOT EID(%s)' %(replications.loc[i,'Publication ID'], \n",
    "                                                                                             replications.loc[i,'Publication volume'],  \n",
    "                                                                                             replications.loc[i,'Publication issue'],\n",
    "                                                                                             str(replications.loc[i,'Replication Year'])[:4],\n",
    "                                                                                             replications.loc[i,'EID replication']), refresh = 2)\n",
    "        \n",
    "        df = pd.DataFrame(s.results)\n",
    "        # to exclude other articles in the volume that might be in the list of replications\n",
    "        df=df[~df['eid'].isin (replications['EID replication'])]\n",
    "        df=df[df['subtype'].isin(['ar', 're', 'no']) ] # only articles to avoid errata etc\n",
    "\n",
    "        df=df[df['eid']!='2-s2.0-77954163237'] # this is a paper without authors\n",
    "        df=df[df['eid']!='2-s2.0-85086387954'] # this is a paper without authors\n",
    "        df=df[df['eid']!='2-s2.0-77954163237'] # this is a paper without authors\n",
    "        df=df[df['eid']!='2-s2.0-85000733281'] # this is a paper without authors\n",
    "        \n",
    "        df=df[df['subtype'].isin(['ar', 're', 'no']) ] # only articles to avoid errata etc\n",
    "        a=pd.DataFrame()\n",
    "        a=df['pageRange'].str.replace('E','').str.replace('e','').str.replace('+I','').str.replace('F','').str.replace('S','').str.replace('i','').str.split('-', expand=True)\n",
    "        if 1 in a.columns: # if not it means all pages are missing\n",
    "            a['count']=1+a[a[1].notna() & a[0].notna()][1].astype(int)-a[a[1].notna() & a[0].notna()][0].astype(int)\n",
    "            try:\n",
    "                a.loc[a['count']<0,1]=round(a[a['count']<0][0].astype(int),-(a[a['count']<0][0].str.len()-1))+a[a['count']<0][1].astype(int)\n",
    "            except:\n",
    "                pass\n",
    "            \n",
    "            try:\n",
    "                a['count']=1+a[a[1].notna()][1].astype(int)-a[a[1].notna()][0].astype(int)\n",
    "            except:\n",
    "                pass\n",
    "            a.loc[a[1].isna() & a[0].notna(),'count']=1\n",
    "            a.loc[a[1].notna() & a[0].isna(),'count']=1\n",
    "            a['cites']=df['citedby_count']\n",
    "            a['nr authors']=df['author_count'].astype(int)\n",
    "        else:\n",
    "            a['cites']=df['citedby_count']\n",
    "            a['nr authors']=df['author_count'].astype(int)\n",
    "\n",
    "            a['count']=None\n",
    "\n",
    "        pubcites +=[a['cites'].to_list()] #adds citation count list\n",
    "        numpages +=[a['count'].to_list()]\n",
    "        numauthors +=[a['nr authors'].to_list()]\n",
    "        \n",
    "    except:\n",
    "        if replications.loc[i,'Publication issue']=='None' and replications.loc[i,'Publication volume']!='None':\n",
    "            s = ScopusSearch('SRCID(%s) AND VOLUME(%s) AND PUBYEAR = %s AND NOT EID(%s)' %(replications.loc[i,'Publication ID'], \n",
    "                                                                                         replications.loc[i,'Publication volume'],  \n",
    "                                                                                         str(replications.loc[i,'Replication Year'])[:4],\n",
    "                                                                                         replications.loc[i,'EID replication']), refresh = 2)\n",
    "            df = pd.DataFrame(s.results)\n",
    "            # to exclude other articles in the volume that might be in the list of replications\n",
    "            df=df[~df['eid'].isin (replications['EID replication'])]\n",
    "            df=df[df['subtype'].isin(['ar', 're', 'no']) ] # only articles to avoid errata etc\n",
    "            a=pd.DataFrame()\n",
    "            a=df['pageRange'].str.replace('E','').str.replace('e','').str.replace('+I','').str.replace('F','').str.replace('S','').str.replace('i','').str.split('-', expand=True)\n",
    "            if 1 in a.columns: # if not it means all pages are missing\n",
    "                a['count']=1+a[a[1].notna() & a[0].notna()][1].astype(int)-a[a[1].notna() & a[0].notna()][0].astype(int)\n",
    "                try:\n",
    "                    a.loc[a['count']<0,1]=round(a[a['count']<0][0].astype(int),-(a[a['count']<0][0].str.len()-1))+a[a['count']<0][1].astype(int)\n",
    "                except:\n",
    "                    pass\n",
    "                \n",
    "                try:\n",
    "                    a['count']=1+a[a[1].notna()][1].astype(int)-a[a[1].notna()][0].astype(int)\n",
    "                except:\n",
    "                    pass\n",
    "                a.loc[a[1].isna() & a[0].notna(),'count']=1\n",
    "                a.loc[a[1].notna() & a[0].isna(),'count']=1\n",
    "                a['cites']=df['citedby_count']\n",
    "                a['nr authors']=df['author_count'].astype(int)\n",
    "\n",
    "            else:\n",
    "                a['cites']=df['citedby_count']\n",
    "                a['count']=None\n",
    "                a['nr authors']=df['author_count'].astype(int)\n",
    "\n",
    "        else:\n",
    "            if replications.loc[i,'Publication volume']=='None' and replications.loc[i,'Publication issue']!='None':\n",
    "                s = ScopusSearch('SRCID(%s) AND ISSUE(%s) AND PUBYEAR = %s AND NOT EID(%s)' %(replications.loc[i,'Publication ID'], \n",
    "                                                                                             replications.loc[i,'Publication issue'],  \n",
    "                                                                                             str(replications.loc[i,'Replication Year'])[:4],\n",
    "                                                                                             replications.loc[i,'EID replication']), refresh = 2)\n",
    "                df = pd.DataFrame(s.results)\n",
    "                # to exclude other articles in the volume that might be in the list of replications\n",
    "                df=df[~df['eid'].isin (replications['EID replication'])]\n",
    "                df=df[df['subtype'].isin(['ar', 're', 'no']) ] # only articles to avoid errata etc\n",
    "                a=pd.DataFrame()\n",
    "                a=df['pageRange'].str.replace('E','').str.replace('e','').str.replace('+I','').str.replace('F','').str.replace('S','').str.replace('i','').str.split('-', expand=True)\n",
    "                if 1 in a.columns: # if not it means all pages are missing\n",
    "                    a['count']=1+a[a[1].notna() & a[0].notna()][1].astype(int)-a[a[1].notna() & a[0].notna()][0].astype(int)\n",
    "                    try:\n",
    "                        a.loc[a['count']<0,1]=round(a[a['count']<0][0].astype(int),-(a[a['count']<0][0].str.len()-1))+a[a['count']<0][1].astype(int)\n",
    "                    except:\n",
    "                        pass\n",
    "                    \n",
    "                    try:\n",
    "                        a['count']=1+a[a[1].notna()][1].astype(int)-a[a[1].notna()][0].astype(int)\n",
    "                    except:\n",
    "                        pass\n",
    "                    a.loc[a[1].isna() & a[0].notna(),'count']=1\n",
    "                    a.loc[a[1].notna() & a[0].isna(),'count']=1\n",
    "                    a['cites']=df['citedby_count']\n",
    "                    a['nr authors']=df['author_count'].astype(int)\n",
    "\n",
    "                else:\n",
    "                    a['cites']=df['citedby_count']\n",
    "                    a['count']=None\n",
    "                    a['nr authors']=df['author_count'].astype(int)\n",
    "            \n",
    "        pubcites +=[a['cites'].to_list()] #adds citation count list\n",
    "        numpages +=[a['count'].to_list()]\n",
    "        numauthors +=[a['nr authors'].to_list()]\n",
    "\n",
    "replications['Citations of papers in same publication'] = pubcites\n",
    "replications['Pages of papers in same publication'] = numpages\n",
    "replications['Nr authors of papers in same publication'] = numauthors\n",
    "\n",
    "replications\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "304be93d-f36f-4b92-8123-e2cce4617ee8",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "replications.to_pickle('replications')\n",
    "originals.to_pickle('originals')\n",
    "\n",
    "replications=pd.read_pickle('replications')\n",
    "originals=pd.read_pickle('originals')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "b7476754-ee88-4ffb-913d-48859a78e94e",
   "metadata": {},
   "outputs": [],
   "source": [
    "#Gets averages for the papers citing original in same year as replication\n",
    "import numpy as np\n",
    "averagecites=[]\n",
    "mediancites=[]\n",
    "averagecitesp=[]\n",
    "mediancitesp=[]\n",
    "averagepages=[]\n",
    "medianpages=[]\n",
    "averageauthors=[]\n",
    "medianauthors=[]\n",
    "averageratio=[]\n",
    "medianratio=[]\n",
    "for i in range(0,len(replications)):\n",
    "    try:\n",
    "        \n",
    "        L = pd.DataFrame()\n",
    "        L['cites']=replications['Citations of papers in same publication'][i]\n",
    "        averagecites+=[L.mean()['cites']]\n",
    "        mediancites +=[L.median()['cites']]\n",
    "\n",
    "        L['authors']=replications['Nr authors of papers in same publication'][i]\n",
    "        L['pages']=replications['Pages of papers in same publication'][i]\n",
    "        L=L.dropna()                \n",
    "        averagecitesp+=[L.mean()['cites']]\n",
    "        mediancitesp +=[L.median()['cites']]\n",
    "\n",
    "        averagepages += [L.mean()['pages']] \n",
    "        medianpages += [L.median()['pages']]\n",
    "\n",
    "        averageratio += [(L['cites']/L['pages']).mean()] \n",
    "        medianratio += [(L['cites']/L['pages']).median()]\n",
    "\n",
    "        averageauthors += [L.mean()['authors']] \n",
    "        medianauthors += [L.median()['authors']] \n",
    "\n",
    "    \n",
    "    except:\n",
    "        averagecites += [None]\n",
    "        mediancites += [None]\n",
    "        averagecitesp += [None]\n",
    "        mediancitesp += [None]\n",
    "        averagepages += [None]\n",
    "        medianpages += [None]\n",
    "        averageratio += [None]\n",
    "        medianratio += [None]\n",
    "        averageauthors += [None]\n",
    "        medianauthors += [None]\n",
    "replications['Average citations of papers in same volume'] = averagecites\n",
    "replications['Median citations of papers in same volume'] = mediancites\n",
    "replications['Average pages of papers in same volume'] = averagepages\n",
    "replications['Median pages of papers in same volume'] = medianpages\n",
    "replications['Average citations of papers in same volume (with pages only)'] = averagecitesp\n",
    "replications['Median citations of papers in same volume (with pages only)'] = mediancitesp\n",
    "\n",
    "replications['Average nr authors of papers in same volume'] = averageauthors\n",
    "replications['Median nr authors of papers in same volume'] = medianauthors\n",
    "replications['Average ratio in same volume'] = averageratio\n",
    "replications['Median ratio in same volume'] = medianratio\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "e8ea8a7d-c887-4de1-b852-6851b10ed7d9",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "replications.to_pickle('replications')\n",
    "originals.to_pickle('originals')\n",
    "\n",
    "replications=pd.read_pickle('replications')\n",
    "originals=pd.read_pickle('originals')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "ae967db0-0b23-42ff-8b95-cc62e9a6ae07",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "replications=pd.read_pickle('replications')\n",
    "originals=pd.read_pickle('originals')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "id": "9a9d9669-d00b-4e7f-bec8-878afd7542f2",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n",
      "0\n"
     ]
    }
   ],
   "source": [
    "# adding ratios\n",
    "# counting how many observations we will drop because of zero\n",
    "import numpy as np\n",
    "print(np.sum(replications['Average citations of papers in same volume']==0))\n",
    "print(np.sum(replications['Median citations of papers in same volume']==0))\n",
    "# there are none\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "id": "75c7c132-e2a0-42d3-b3de-8cdc8b419f5c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_29d61 caption {\n",
       "  text-align: center;\n",
       "  font-size: 150%;\n",
       "  color: blue;\n",
       "}\n",
       "#T_29d61 td {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_29d61 th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_29d61 .true {\n",
       "  border-right: solid;\n",
       "  border-color: blue;\n",
       "  vertical-align: top;\n",
       "}\n",
       "#T_29d61_row0_col0, #T_29d61_row0_col1, #T_29d61_row0_col2, #T_29d61_row0_col3, #T_29d61_row0_col4, #T_29d61_row1_col0, #T_29d61_row1_col1, #T_29d61_row1_col2, #T_29d61_row1_col3, #T_29d61_row1_col4, #T_29d61_row2_col0, #T_29d61_row2_col1, #T_29d61_row2_col2, #T_29d61_row2_col3, #T_29d61_row2_col4, #T_29d61_row3_col0, #T_29d61_row3_col1, #T_29d61_row3_col2, #T_29d61_row3_col3, #T_29d61_row3_col4, #T_29d61_row4_col0, #T_29d61_row4_col1, #T_29d61_row4_col2, #T_29d61_row4_col3, #T_29d61_row4_col4, #T_29d61_row5_col0, #T_29d61_row5_col1, #T_29d61_row5_col2, #T_29d61_row5_col3, #T_29d61_row5_col4, #T_29d61_row6_col0, #T_29d61_row6_col1, #T_29d61_row6_col2, #T_29d61_row6_col3, #T_29d61_row6_col4 {\n",
       "  width: 500px;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_29d61\">\n",
       "  <caption>Table 6: Comparing Citations using the Same Issue Counterfactual</caption>\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_29d61_level0_col0\" class=\"col_heading level0 col0\" >(I) Replication citations</th>\n",
       "      <th id=\"T_29d61_level0_col1\" class=\"col_heading level0 col1\" >(II) Same Issue, Average Citations</th>\n",
       "      <th id=\"T_29d61_level0_col2\" class=\"col_heading level0 col2\" >(III) Same Issue, Median Citations</th>\n",
       "      <th id=\"T_29d61_level0_col3\" class=\"col_heading level0 col3\" >(IV) Ratio, Same Issue, Average Citations</th>\n",
       "      <th id=\"T_29d61_level0_col4\" class=\"col_heading level0 col4\" >(V) Ratio, Same Issue, Median Citations</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_29d61_level0_row0\" class=\"row_heading level0 row0\" >Mean</th>\n",
       "      <td id=\"T_29d61_row0_col0\" class=\"data row0 col0\" >3.19</td>\n",
       "      <td id=\"T_29d61_row0_col1\" class=\"data row0 col1\" >5.23</td>\n",
       "      <td id=\"T_29d61_row0_col2\" class=\"data row0 col2\" >3.33</td>\n",
       "      <td id=\"T_29d61_row0_col3\" class=\"data row0 col3\" >1.01</td>\n",
       "      <td id=\"T_29d61_row0_col4\" class=\"data row0 col4\" >1.66</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_29d61_level0_row1\" class=\"row_heading level0 row1\" >Median</th>\n",
       "      <td id=\"T_29d61_row1_col0\" class=\"data row1 col0\" >1.38</td>\n",
       "      <td id=\"T_29d61_row1_col1\" class=\"data row1 col1\" >3.10</td>\n",
       "      <td id=\"T_29d61_row1_col2\" class=\"data row1 col2\" >1.89</td>\n",
       "      <td id=\"T_29d61_row1_col3\" class=\"data row1 col3\" >0.49</td>\n",
       "      <td id=\"T_29d61_row1_col4\" class=\"data row1 col4\" >0.75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_29d61_level0_row2\" class=\"row_heading level0 row2\" >Min</th>\n",
       "      <td id=\"T_29d61_row2_col0\" class=\"data row2 col0\" >0.00</td>\n",
       "      <td id=\"T_29d61_row2_col1\" class=\"data row2 col1\" >0.09</td>\n",
       "      <td id=\"T_29d61_row2_col2\" class=\"data row2 col2\" >0.01</td>\n",
       "      <td id=\"T_29d61_row2_col3\" class=\"data row2 col3\" >0.00</td>\n",
       "      <td id=\"T_29d61_row2_col4\" class=\"data row2 col4\" >0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_29d61_level0_row3\" class=\"row_heading level0 row3\" >Q.1</th>\n",
       "      <td id=\"T_29d61_row3_col0\" class=\"data row3 col0\" >0.56</td>\n",
       "      <td id=\"T_29d61_row3_col1\" class=\"data row3 col1\" >1.51</td>\n",
       "      <td id=\"T_29d61_row3_col2\" class=\"data row3 col2\" >0.86</td>\n",
       "      <td id=\"T_29d61_row3_col3\" class=\"data row3 col3\" >0.17</td>\n",
       "      <td id=\"T_29d61_row3_col4\" class=\"data row3 col4\" >0.29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_29d61_level0_row4\" class=\"row_heading level0 row4\" >Q.3</th>\n",
       "      <td id=\"T_29d61_row4_col0\" class=\"data row4 col0\" >3.34</td>\n",
       "      <td id=\"T_29d61_row4_col1\" class=\"data row4 col1\" >7.28</td>\n",
       "      <td id=\"T_29d61_row4_col2\" class=\"data row4 col2\" >4.54</td>\n",
       "      <td id=\"T_29d61_row4_col3\" class=\"data row4 col3\" >1.02</td>\n",
       "      <td id=\"T_29d61_row4_col4\" class=\"data row4 col4\" >1.61</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_29d61_level0_row5\" class=\"row_heading level0 row5\" >Max</th>\n",
       "      <td id=\"T_29d61_row5_col0\" class=\"data row5 col0\" >79.42</td>\n",
       "      <td id=\"T_29d61_row5_col1\" class=\"data row5 col1\" >35.94</td>\n",
       "      <td id=\"T_29d61_row5_col2\" class=\"data row5 col2\" >24.15</td>\n",
       "      <td id=\"T_29d61_row5_col3\" class=\"data row5 col3\" >29.26</td>\n",
       "      <td id=\"T_29d61_row5_col4\" class=\"data row5 col4\" >47.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_29d61_level0_row6\" class=\"row_heading level0 row6\" ># Obs.</th>\n",
       "      <td id=\"T_29d61_row6_col0\" class=\"data row6 col0\" >428</td>\n",
       "      <td id=\"T_29d61_row6_col1\" class=\"data row6 col1\" >428</td>\n",
       "      <td id=\"T_29d61_row6_col2\" class=\"data row6 col2\" >428</td>\n",
       "      <td id=\"T_29d61_row6_col3\" class=\"data row6 col3\" >428</td>\n",
       "      <td id=\"T_29d61_row6_col4\" class=\"data row6 col4\" >428</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7f4c2f602280>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Notes: this table is based on 428 papers. It compares citations of their replication paper and the citations of the non-replication papers published \n",
      "in the same issue the replication was published. The Ratio columns divide replication citations by the corresponding counterfactual citations. \n",
      "Since each replication is matched to several counterfactuals, we explore both the distribution when using the mean counterfactual for each replication (column II and IV), and the median counterfactual for each replication (column III and V). Q1 and Q3 are the first and third quartile.\n"
     ]
    }
   ],
   "source": [
    "styles = [{'selector': 'caption', 'props': 'text-align: center; font-size: 150%; color: blue'},\n",
    "        {'selector': 'td', 'props': 'text-align: center;'},\n",
    "         {'selector': 'th', 'props': 'text-align: center;'},  \n",
    "         {'selector': '.true', 'props': 'border-right:solid; border-color:blue; vertical-align:top'}]\n",
    "\n",
    "cols = [\"(I) Replication citations\", \"(II) Same Issue, Average Citations\", \"(III) Same Issue, Median Citations\", \"(IV) Ratio, Same Issue, Average Citations\", \"(V) Ratio, Same Issue, Median Citations\"]\n",
    "summarydf = pd.DataFrame(columns=cols)\n",
    "summarydf[\"(I) Replication citations\"] = (replications['Replication Cite no.']/(2025-replications['Replication Year'])).describe()\n",
    "summarydf[\"(III) Same Issue, Median Citations\"] = (replications['Median citations of papers in same volume']/(2025-replications['Replication Year'])).describe()\n",
    "summarydf[\"(II) Same Issue, Average Citations\"] = (replications['Average citations of papers in same volume']/(2025-replications['Replication Year'])).describe()\n",
    "summarydf[\"(IV) Ratio, Same Issue, Average Citations\"] = (replications['Replication Cite no.']/replications['Average citations of papers in same volume']).describe()\n",
    "summarydf[\"(V) Ratio, Same Issue, Median Citations\"] = (replications['Replication Cite no.']/replications['Median citations of papers in same volume']).describe()\n",
    "\n",
    "a=summarydf.T[['mean','50%','min',\t'25%'\t,'75%',\t'max','count']]\n",
    "a=a.round(2)\n",
    "a['count']=a['count'].apply(lambda x: f'{x:.0f}')\n",
    "a=a.rename(columns={'50%': 'Median', 'mean': 'Mean', '25%': 'Q.1', '75%': 'Q.3', 'max': 'Max', 'min': 'Min', 'count': '# Obs.'})\n",
    "display(a.T.style.set_caption(\"Table 6: Comparing Citations using the Same Issue Counterfactual\").format(precision=2).set_table_styles(styles).set_properties(**{'width': '500px'}))\n",
    "print('Notes: this table is based on 428 papers. It compares citations of their replication paper and the citations of the non-replication papers published \\nin the same issue the replication was published. The Ratio columns divide replication citations by the corresponding counterfactual citations. \\nSince each replication is matched to several counterfactuals, we explore both the distribution when using the mean counterfactual for each replication (column II and IV), and the median counterfactual for each replication (column III and V). Q1 and Q3 are the first and third quartile.')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "1e8445af-6315-4e90-9edd-fe9d8677e9e3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.5609243697478992\n",
      "3.3425925925925926\n",
      "7.515094926859633\n",
      "-3.6115779645191415\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "count    428.000000\n",
       "mean       2.329312\n",
       "std        2.373550\n",
       "min        0.000000\n",
       "25%        0.560924\n",
       "50%        1.377976\n",
       "75%        3.342593\n",
       "max        7.515095\n",
       "dtype: float64"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_c6c9b caption {\n",
       "  text-align: center;\n",
       "  font-size: 150%;\n",
       "  color: blue;\n",
       "}\n",
       "#T_c6c9b td {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_c6c9b th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_c6c9b .true {\n",
       "  border-right: solid;\n",
       "  border-color: blue;\n",
       "  vertical-align: top;\n",
       "}\n",
       "#T_c6c9b_row0_col0, #T_c6c9b_row0_col1, #T_c6c9b_row0_col2, #T_c6c9b_row0_col3, #T_c6c9b_row0_col4, #T_c6c9b_row1_col0, #T_c6c9b_row1_col1, #T_c6c9b_row1_col2, #T_c6c9b_row1_col3, #T_c6c9b_row1_col4, #T_c6c9b_row2_col0, #T_c6c9b_row2_col1, #T_c6c9b_row2_col2, #T_c6c9b_row2_col3, #T_c6c9b_row2_col4, #T_c6c9b_row3_col0, #T_c6c9b_row3_col1, #T_c6c9b_row3_col2, #T_c6c9b_row3_col3, #T_c6c9b_row3_col4, #T_c6c9b_row4_col0, #T_c6c9b_row4_col1, #T_c6c9b_row4_col2, #T_c6c9b_row4_col3, #T_c6c9b_row4_col4, #T_c6c9b_row5_col0, #T_c6c9b_row5_col1, #T_c6c9b_row5_col2, #T_c6c9b_row5_col3, #T_c6c9b_row5_col4, #T_c6c9b_row6_col0, #T_c6c9b_row6_col1, #T_c6c9b_row6_col2, #T_c6c9b_row6_col3, #T_c6c9b_row6_col4 {\n",
       "  width: 500px;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_c6c9b\">\n",
       "  <caption>Table 6A: Comparing Citations using the Same Issue Counterfactual</caption>\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_c6c9b_level0_col0\" class=\"col_heading level0 col0\" >(I) Replication citations</th>\n",
       "      <th id=\"T_c6c9b_level0_col1\" class=\"col_heading level0 col1\" >(II) Same Issue, Average Citations</th>\n",
       "      <th id=\"T_c6c9b_level0_col2\" class=\"col_heading level0 col2\" >(III) Same Issue, Median Citations</th>\n",
       "      <th id=\"T_c6c9b_level0_col3\" class=\"col_heading level0 col3\" >(IV) Ratio, Same Issue, Average Citations</th>\n",
       "      <th id=\"T_c6c9b_level0_col4\" class=\"col_heading level0 col4\" >(V) Ratio, Same Issue, Median Citations</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_c6c9b_level0_row0\" class=\"row_heading level0 row0\" >Mean</th>\n",
       "      <td id=\"T_c6c9b_row0_col0\" class=\"data row0 col0\" >2.33</td>\n",
       "      <td id=\"T_c6c9b_row0_col1\" class=\"data row0 col1\" >5.23</td>\n",
       "      <td id=\"T_c6c9b_row0_col2\" class=\"data row0 col2\" >3.33</td>\n",
       "      <td id=\"T_c6c9b_row0_col3\" class=\"data row0 col3\" >0.83</td>\n",
       "      <td id=\"T_c6c9b_row0_col4\" class=\"data row0 col4\" >1.37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_c6c9b_level0_row1\" class=\"row_heading level0 row1\" >Median</th>\n",
       "      <td id=\"T_c6c9b_row1_col0\" class=\"data row1 col0\" >1.38</td>\n",
       "      <td id=\"T_c6c9b_row1_col1\" class=\"data row1 col1\" >3.10</td>\n",
       "      <td id=\"T_c6c9b_row1_col2\" class=\"data row1 col2\" >1.89</td>\n",
       "      <td id=\"T_c6c9b_row1_col3\" class=\"data row1 col3\" >0.47</td>\n",
       "      <td id=\"T_c6c9b_row1_col4\" class=\"data row1 col4\" >0.74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_c6c9b_level0_row2\" class=\"row_heading level0 row2\" >Min</th>\n",
       "      <td id=\"T_c6c9b_row2_col0\" class=\"data row2 col0\" >0.00</td>\n",
       "      <td id=\"T_c6c9b_row2_col1\" class=\"data row2 col1\" >0.09</td>\n",
       "      <td id=\"T_c6c9b_row2_col2\" class=\"data row2 col2\" >0.01</td>\n",
       "      <td id=\"T_c6c9b_row2_col3\" class=\"data row2 col3\" >0.00</td>\n",
       "      <td id=\"T_c6c9b_row2_col4\" class=\"data row2 col4\" >0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_c6c9b_level0_row3\" class=\"row_heading level0 row3\" >Q.1</th>\n",
       "      <td id=\"T_c6c9b_row3_col0\" class=\"data row3 col0\" >0.56</td>\n",
       "      <td id=\"T_c6c9b_row3_col1\" class=\"data row3 col1\" >1.51</td>\n",
       "      <td id=\"T_c6c9b_row3_col2\" class=\"data row3 col2\" >0.86</td>\n",
       "      <td id=\"T_c6c9b_row3_col3\" class=\"data row3 col3\" >0.17</td>\n",
       "      <td id=\"T_c6c9b_row3_col4\" class=\"data row3 col4\" >0.29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_c6c9b_level0_row4\" class=\"row_heading level0 row4\" >Q.3</th>\n",
       "      <td id=\"T_c6c9b_row4_col0\" class=\"data row4 col0\" >3.34</td>\n",
       "      <td id=\"T_c6c9b_row4_col1\" class=\"data row4 col1\" >7.28</td>\n",
       "      <td id=\"T_c6c9b_row4_col2\" class=\"data row4 col2\" >4.54</td>\n",
       "      <td id=\"T_c6c9b_row4_col3\" class=\"data row4 col3\" >0.90</td>\n",
       "      <td id=\"T_c6c9b_row4_col4\" class=\"data row4 col4\" >1.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_c6c9b_level0_row5\" class=\"row_heading level0 row5\" >Max</th>\n",
       "      <td id=\"T_c6c9b_row5_col0\" class=\"data row5 col0\" >7.52</td>\n",
       "      <td id=\"T_c6c9b_row5_col1\" class=\"data row5 col1\" >35.94</td>\n",
       "      <td id=\"T_c6c9b_row5_col2\" class=\"data row5 col2\" >24.15</td>\n",
       "      <td id=\"T_c6c9b_row5_col3\" class=\"data row5 col3\" >8.36</td>\n",
       "      <td id=\"T_c6c9b_row5_col4\" class=\"data row5 col4\" >30.06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_c6c9b_level0_row6\" class=\"row_heading level0 row6\" ># Obs.</th>\n",
       "      <td id=\"T_c6c9b_row6_col0\" class=\"data row6 col0\" >428</td>\n",
       "      <td id=\"T_c6c9b_row6_col1\" class=\"data row6 col1\" >428</td>\n",
       "      <td id=\"T_c6c9b_row6_col2\" class=\"data row6 col2\" >428</td>\n",
       "      <td id=\"T_c6c9b_row6_col3\" class=\"data row6 col3\" >428</td>\n",
       "      <td id=\"T_c6c9b_row6_col4\" class=\"data row6 col4\" >428</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7fd8bb132460>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Notes: this table is similar to table 6 but is uses winsorized annual citation counts\n",
      "share mean <1\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.7663551401869159"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "share median <1\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.602803738317757"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# WINSORIZING OUTLIERS\n",
    "citation_rate_repl=(replications['Replication Cite no.']/(2025-replications['Replication Year']))\n",
    "Q1 = citation_rate_repl.quantile(0.25)\n",
    "Q3 = citation_rate_repl.quantile(0.75)\n",
    "print(Q1)\n",
    "print(Q3)\n",
    "# Compute IQR\n",
    "IQR = Q3 - Q1\n",
    "print(Q3+1.5*IQR)\n",
    "print(Q1-1.5*IQR)\n",
    "citation_rate_repl[citation_rate_repl>Q3+1.5*IQR]=Q3+1.5*IQR\n",
    "\n",
    "display(citation_rate_repl.describe())\n",
    "\n",
    "styles = [{'selector': 'caption', 'props': 'text-align: center; font-size: 150%; color: blue'},\n",
    "        {'selector': 'td', 'props': 'text-align: center;'},\n",
    "         {'selector': 'th', 'props': 'text-align: center;'},  \n",
    "         {'selector': '.true', 'props': 'border-right:solid; border-color:blue; vertical-align:top'}]\n",
    "\n",
    "cols = [\"(I) Replication citations\", \"(II) Same Issue, Average Citations\", \"(III) Same Issue, Median Citations\", \"(IV) Ratio, Same Issue, Average Citations\", \"(V) Ratio, Same Issue, Median Citations\"]\n",
    "summarydf = pd.DataFrame(columns=cols)\n",
    "summarydf[\"(I) Replication citations\"] = citation_rate_repl.describe()\n",
    "summarydf[\"(III) Same Issue, Median Citations\"] = (replications['Median citations of papers in same volume']/(2025-replications['Replication Year'])).describe()\n",
    "summarydf[\"(II) Same Issue, Average Citations\"] = (replications['Average citations of papers in same volume']/(2025-replications['Replication Year'])).describe()\n",
    "summarydf[\"(IV) Ratio, Same Issue, Average Citations\"] = (citation_rate_repl/(replications['Average citations of papers in same volume']/(2025-replications['Replication Year']))).describe()\n",
    "summarydf[\"(V) Ratio, Same Issue, Median Citations\"] = (citation_rate_repl/(replications['Median citations of papers in same volume']/(2025-replications['Replication Year']))).describe()\n",
    "\n",
    "a=summarydf.T[['mean','50%','min',\t'25%'\t,'75%',\t'max','count']]\n",
    "a=a.round(2)\n",
    "a['count']=a['count'].apply(lambda x: f'{x:.0f}')\n",
    "a=a.rename(columns={'50%': 'Median', 'mean': 'Mean', '25%': 'Q.1', '75%': 'Q.3', 'max': 'Max', 'min': 'Min', 'count': '# Obs.'})\n",
    "display(a.T.style.set_caption(\"Table 6A: Comparing Citations using the Same Issue Counterfactual\").format(precision=2).set_table_styles(styles).set_properties(**{'width': '500px'}))\n",
    "print('Notes: this table is similar to table 6 but is uses winsorized annual citation counts')\n",
    "\n",
    "\n",
    "print('share mean <1')\n",
    "display(np.sum((citation_rate_repl/(replications['Average citations of papers in same volume']/(2025-replications['Replication Year'])))<1)/428)\n",
    "\n",
    "print('share median <1')\n",
    "display(np.sum((citation_rate_repl/(replications['Median citations of papers in same volume']/(2025-replications['Replication Year'])))<1)/428)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "144c87fe-8fba-42fd-8aba-5f758c453f76",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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ble/fv20f//+Yt+nYRiKjo5Wo0aN9Pnnn6tv37667LLLdNVVV+mJJ57QO++8I6nw8r2iajnDMDR37lw1bNhQ3t7euvLKK/Xmm286x0tJSdEdd9yhmjVrytvbW40aNVJsbGyx8y2pcrenFAAAlckff/yh+Pj4Qkveli9frmnTpmnmzJnau3evZs2apccee8y57O+sSZMmacKECfr+++/VoUMH9e/fXw6Ho1jjnn0iW9++ffX999/r008/Vdu2bZ3nc3Nz9dRTT+mHH37Q22+/rQMHDjiLlTp16uh///ufJOnXX39VUlKSnnvuufOOEx0drW+//VYbNmzQ9u3bZRiG+vTpU+jRwFlZWXrmmWf06quv6rPPPtPhw4c1ceLEC+a+evVq+fn5adSoUec9f74p6BMnTtRtt93mbHglJSWpQ4cOysrKUpcuXeTn56fPPvtMX3zxhbMxlpubqzNnzujmm29Wp06d9OOPP2r79u269957eQoRAADl2MmTJ/XRRx9p1KhR58xcCgsL0x133KHXXntNhmE4j8+bN08tWrTQzp079dhjj51zzYMHD2rQoEG6+eabtWvXLt13332FGlsXsn//fr399tt677339N5772nr1q2aM2eO83xmZqbGjx+vHTt26NNPP1W1atU0YMAAFRQUFOted+3apT179mjChAmqVu3cFs756qKiarlHH31UsbGxWrp0qfbs2aNx48Zp6NCh2rp1qyTpscce088//6wPP/xQe/fu1dKlS0u0xLGkLH/6HkomKSlJ+fn5cnNzc25sCgAoX9577z35+fkpPz9fp0+fliQtWLDAef6pp57S/PnznTOXGjRooJ9//lnLli1zzgKSpNGjR+uWW26RJC1dulTx8fFasWKFJk+efNEcZs6cqdtvv13Tp093Hrvyyiudfx4xYoTzzw0bNtSiRYt07bXXKiMjQ35+fs7p7qGhoRfch2Dfvn3asGGDvvzyS+dG2qtXr1adOnX09ttv69Zbb5Uk5eXl6YUXXtBll13mvK8nn3zygrnv27dPDRs2LNHeVX5+fvL29lZOTk6hqetxcXGqVq2aXnrpJWejKTY2VjVq1NCWLVvUtm1bpaamql+/fs78mjVrVuxxAVehxgOA4tu3b58Mw7jgv7ObNWumlJQUHT9+XKGhoZKkrl27FvpS7O+zpiXphRdeUJMmTZxPXW3SpIl++uknzZw5s8hcCgoKtHLlSudy+jvvvFOffvqp83Nna7mzVqxYodDQUP38889q0aJFse5Vkpo2bXrR2LPc3NzOW8tlZmZqwYIF2rRpk9q3by/przrwiy++0LJly9SpUycdPnxYV199tfPLzPr16xd73NJgplQFc80116hOnTq65pprrE4FAHABXbp00a5du/T111/roYceUq9evZwbch8/flxHjhzRyJEjnXsi+fn5acaMGedM5T5bLEiSu7u72rZtq7179xYrh127dqlbt24XPP/999/rpptuUr169eTv76/OnTtLkg4fPlzs+9y7d6/c3d3Vrl075zG73a4mTZoUytPHx8fZ8JGk8PBw51LB8zEMw2UzlXbu3Knff/9d/v7+zp91cHCwTp8+rf379ys4OFjR0dHq1auXbrzxRj333HNFLi0Eygo1HgC4ztkZUn+vJ/4+Y/x8fv3113P+P/jaa6+96Fj169cvtL/jP+uc/fv3a8iQIWrYsKECAgLUoEEDScWvuc53L6X1888/6/Tp0+rRo0ehOvSVV15x1qEPPPCA1q1bp6uuukqTJ0/Wtm3bLnncotCUAgDAxXx9fXX55ZerVatWWrRokXJycpwzls5O1V6+fLl27drlfP3000/66quvLnrt4hYkRW3CmZmZqZ49e8rPz09xcXHasWOH3nrrLUl/Lesrrr9Pif/n8b/n+c8ZTzab7YKflaTGjRtr//79hZYAllZBQYHatGlT6Ge9a9cu/fbbbxoyZIikv2ZObd++XR06dNBrr72mxo0bF+t3AQAArHH55ZfLZrPp559/Pu/5X375RUFBQYWWnfn6+hZ5zfN9KVZUvXLW+eqcvy/Nu/HGG+VwOLR8+XJ9/fXX+vrrryUVv+Zq3LixJBX7i8minM3r/fffL1QX/fzzz859pXr37q1Dhw5p7NixOnr0qLp161bktguXiqZUOdC3b18NGjRIffv2dWksAKB8eOKJJ/TMM8/o6NGjqlWrliIjI/XHH3/o8ssvL/Q6+83ZWX9vjJw5c0Y7d+4s9tTtVq1a6dNPPz3vuV9++UUnTpzQnDlz9K9//UtNmzY9Z+aSp6enJCk/P/+CY1xxxRU6c+aMs7iSJIfDod9+++2SlsANGTJEGRkZhTZ//7uzm43+k6en5zn5tm7dWvv27VNoaOg5P+/AwEBn3NVXX62pU6dq27ZtatGihdasWVPq/FHxWVFvUeMBQPHZ7Xb16NFDS5YsUXZ2dqFzycnJWr16tQYPHlyi2UVNmzbVjh07Ch379ttvLylPh8OhvXv36tFHH1W3bt2cywpL4qqrrtIVV1yh+fPnn3cfqqLqIqlwLXfFFVfIy8tLhw8fPqcu+vuDUWrWrKno6GjFxcXp2Wef1YsvvliinEuCPaXKgWXLlpVJLACgfOjcubOaN2+uWbNmafHixYqJidGYMWMUEBCg3r17KycnR99++61SUlI0fvx45+f++9//qlGjRmrWrJkWLlyolJSUQntBFeWJJ55Qt27ddNlll+n222/XmTNn9OGHH2ry5MmqW7euPD099fzzz+v+++/XTz/9pKeeeqrQ5+vVqyebzab33ntPffr0kbe3t/z8/ArFNGrUSDfddJPuueceLVu2TP7+/poyZYoiIyN10003lfrn1a5dO02ePFkTJkxQYmKiBgwYoIiICP3+++964YUX1LFjR/3nP/8553P169fXRx99pF9//VV2u12BgYG64447NG/ePN1000168sknVbt2bR0+fFjr16/XpEmTlJeXpxdffFH9+/dXRESEfv31V/3222+66667Sp0/Kj4r6i1qPAAomcWLF6tDhw7q1auXZsyYoQYNGmjPnj2aNGmSIiMjL7oX1D/dd999WrBggR5++GGNHDlSu3bt0sqVKyWVfunc2Sf/vvjiiwoPD9fhw4c1ZcqUEl3DZrMpNjZW3bt31w033KBHHnlETZs2VUZGht599119/PHHzk3K/+58tZy/v78mTpyocePGqaCgQB07dlRaWpq2bdsmPz8/DRs2TI8//rjatGmj5s2bKycnR++9916Z7rfJTCkAAEwwfvx4LV++XEeOHNHdd9+tl156SStXrlTLli3VqVMnrVy58pyZUnPmzNHTTz+tK6+8Up9//rneeeedYj/9pHPnznrjjTe0YcMGXXXVVeratatzRlPNmjW1cuVKvfHGG7riiis0Z84cPfPMM4U+HxkZqenTp2vKlCmqVauWRo8efd5xYmNj1aZNG/Xr10/t27eXYRj64IMPSrRJ+fk8/fTTWrNmjb7++mv16tVLzZs31/jx49WqVatCm8H/3T333KMmTZqobdu2qlmzpr788kv5+Pjos88+U926dTVw4EA1a9ZMI0aMUHZ2tgICAuTj46NffvlFt9xyixo3bqx7771Xo0eP1n333XdJ+QMAgLLVqFEjffvtt7rssss0ePBgXXbZZbr33nvVpUsXbd++3bnRd3E1aNBAb775ptavX69WrVpp6dKlzqfveXl5lSrHatWqad26ddq5c6datGihcePGOTdSL4lrr73Wea/33HOPmjVrpv79+2vPnj169tlnz/uZC9VyTz31lB5//HHNnj1bzZo1U69evfTuu+8661BPT09NnTpVrVq10g033CA3NzetW7euVPdfHDajOIskK7m0tDQFBgYqNTVVAQEBZTJGfHx8mVz3rKioqDK9PgCY6fTp0zpw4IAaNGig6tWrW52O6Q4ePKgGDRro+++/11VXXWV1Ovj/ivp7aUYtYabKdj8AgPOr6jXXxcycOVMvvPCCjhw5YnUq5ZIraiOW7wEAAAAAgCpvyZIluuaaa2S32/Xll19q3rx5F5wtDtegKVUOjBkzRidPnlRwcLAWLVpUZOzMmTOVmpqqwMBA51RCAAAAuE7btm2VnJyssLCwS97ktrhuvfVWHT9+XDVr1tQbb7xhypgAgML27dunGTNm6OTJk6pbt64mTJigqVOnWp1WpUZTqhw4efKkHA5HsWL37t0rh8Mhu91exlkBAKxSv379Yj2CGEDZSE5OVmJioqljbt++XYmJiYqMjDR1XADA/1m4cKEWLlxodRpVChudAwAAAAAAwHTMlKpgXn75ZatTAAAAgIvt37/f6hQAADAdTakKxtPT0+oUAAAA4GKlfdw4AAAVGcv3AAAAAAAAYDqaUgAAAAAAADAdy/cqmM2bNysnJ0deXl7q0qWL1ekAAADABdasWaOsrCz5+PhoyJAhVqcDAIApaEpVMCtWrJDD4ZDdbqcpBQAAUElMnjxZiYmJioyMpCkFAKgyWL4HAIALRUdHy2az6f777z/n3KhRo2Sz2RQdHW1+YsUQExOjpk2bytfXV0FBQerevbu+/vrrIj+zfPly/etf/1JQUJDzM998841JGQMAgKqqItdcZ3P/++u6664r8jOVteZiplQ5MHLkSOeSPFfGAgCsUadOHa1bt04LFy6Ut7e3JOn06dNau3at6tata3F2F9a4cWMtXrxYDRs2VHZ2thYuXKiePXvq999/V82aNc/7mS1btujf//63OnTooOrVq2vu3Lnq2bOn9uzZo8jISJPvAHCNuXPnOpfSVeYx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Eqi5cClcURtVu+AZAAAAAAAAoIzQlAIAAAAAAIDp2FOqglm0aJHS09Pl7++vMWPGWJ0OAAAAXOC+++7TyZMnFRwcrGXLllmdDgAApqApVcF88803zv2nAAAAUDm8//77zn2sAACoKli+BwAAAAAAANMxU6ocWLRokfLz8+Xm5ubSWAAAAJTcjh07TK+3rBgTAACr0ZQqB4KDg8skFgAAACUXHh5eJcYEAMBqLN8DAAAAAACA6WhKAQAAAAAAwHQ0pcqBDz74QOvXr9cHH3xw0didO3fqq6++0s6dO03IDABQHm3ZskU2m02nTp2SJK1cuVI1atSwNCegMnnxxRe1YMECvfjii6aN+fHHH2vDhg36+OOPTRsTAFA0aq6yR1OqHFizZo2WL1+uNWvWXDR24cKFmj59uhYuXGhCZgCAkoqOjpbNZtP9999/zrlRo0bJZrMpOjrapWMOHjxYv/32m0uvWVwzZ85Uhw4d5OPjU6oi7b777pPNZtOzzz7r8tyA0nryySc1YcIEPfnkk6aNOWLECN10000aMWKEaWMCQEVW1Wqu/v37q27duqpevbrCw8N155136ujRo0V+Zv369erVq5dCQkJks9m0a9cuc5ItAZpSAAC4WJ06dbRu3TplZ2c7j50+fVpr165V3bp1XT6et7e3QkNDXX7d4sjNzdWtt96qBx54oMSfffvtt/X1118rIiKiDDIDAACVXVWqubp06aLXX39dv/76q/73v/9p//79GjRoUJGfyczM1PXXX685c+aYlGXJ0ZSqYG677TZFR0frtttuszoVAMAFtG7dWnXr1tX69eudx9avX686dero6quvLhRrGIbmzp2rhg0bytvbW1deeaXefPPNQjEffPCBGjduLG9vb3Xp0kUHDx4sdP6fU8n379+vm266SbVq1ZKfn5+uueYaffLJJ4U+U79+fc2aNUsjRoyQv7+/6tatW6qlStOnT9e4cePUsmXLEn0uMTFRo0eP1urVq+Xh4VHicYHKZsqUKZo1a5amTJlidSoAUGFUpZpr3Lhxuu6661SvXj116NBBU6ZM0VdffaW8vLwLfubOO+/U448/ru7du5d4PLPQlKpg+vfvr8GDB6t///5WpwIAKMLw4cMVGxvrfP/yyy+fd1nOo48+qtjYWC1dulR79uzRuHHjNHToUG3dulWSdOTIEQ0cOFB9+vTRrl27dPfdd1/0P1ozMjLUp08fffLJJ/r+++/Vq1cv3XjjjTp8+HChuPnz56tt27b6/vvvNWrUKD3wwAP65ZdfnOc7d+7s8mnvklRQUKA777xTkyZNUvPmzV1+faAiGj16tKZOnarRo0dbnQoAVChVseY6efKkVq9erQ4dOlT4L/fcrU4AAICSWLBggRYsWHDRuNatW2vDhg2FjvXv31/ffffdRT87fvx4jR8/vtQ5Sn99MzV16lQdPHhQNptNX375pdatW6ctW7Y4YzIzM7VgwQJt2rRJ7du3lyQ1bNhQX3zxhZYtW6ZOnTpp6dKlatiwoRYuXCibzaYmTZpo9+7devrppy849pVXXqkrr7zS+X7GjBl66623tGHDhkL/wdunTx+NGjVKkvTwww9r4cKF2rJli5o2bSpJqlu3rsLDwy/p53A+Tz/9tNzd3TVmzBiXXxsAALgGNVf5q7kefvhhLV68WFlZWbruuuv03nvvlehnVR7RlAIAVChpaWlKTEy8aFydOnXOOXb8+PFifTYtLa1Uuf1dSEiI+vbtq1WrVskwDPXt21chISGFYn7++WedPn1aPXr0KHQ8NzfXOeV87969uu6662Sz2ZznzxZTF5KZmanp06frvffe09GjR3XmzBllZ2ef861dq1atnH+22WwKCwvTsWPHnMdeeeWVkt10MezcuVPPPfecvvvuu0L3BAAAyhdqrvJXc02aNEkjR47UoUOHNH36dN1111167733KnRNRVMKAFChBAQEKDIy8qJxNWvWPO+x4nw2ICCgVLn904gRI5zfkv33v/8953xBQYEk6f333z8nLy8vL0l/7X9QUpMmTdJHH32kZ555Rpdffrm8vb01aNAg5ebmFor753Rvm83mzKmsfP755zp27FihzUfz8/M1YcIEPfvss+fs3QAAAKxBzXVxZtdcISEhCgkJUePGjdWsWTPVqVNHX3311UWbZ+UZTakK5p577pHD4ZDdbtfy5cutTgcATHcp07z/ObW8rEVFRTmLkl69ep1z/oorrpCXl5cOHz6sTp06nfcaV1xxhd5+++1Cx7766qsix/38888VHR2tAQMGSPprv4Py0uy58847z9lss1evXrrzzjs1fPhwi7ICrNe0aVMdPXpUERERhfYZAQCrUHOV75rrbBMtJyfHlPHKCk2pCiY7O9v5AgCUb25ubtq7d6/z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TuhERKz6USwiIiIiIiIiIqJu+JtSRERERERERERkc1yUIiIiIiIiIiIim+OiFBERERERERER2RwXpYiIiIiIiIiIyOa4KEVERERERERERDbHRSkiIiIiIiIiIrI5LkoREREREREREZHNcVGKiIiIiIiIiIhsjotSRDSk6HQ6HDx40Cr7Tk9Px5QpU6yybyIiIqLBxrqIiNSOi1JEZDO1tbVYsWIFxo4dC71ej8DAQDz99NM4ceKE0qempgZxcXEAgMuXL0On06GsrGzA92WpiFu5cqXJfVlTaWkp5s2bB19fX7i7uyM0NBQvvPACLly4YJP775SXlwedToebN2/a9H6JiIiod6yLWBcREReliMhGLl++jMjISHzyySfIyspCeXk5jh49ip/+9KdITExU+hmNRuj1equMYfjw4fDy8rLKvu92+PBhPPzww2htbcX777+PiooK7Nq1CwaDAa+//rrV75+IiIiGNtZFrIuI6P+EiMgG4uLiJCAgQJqbm83a6uvrlb8ByIEDB5S/775Mnz5dRESKiorkySefFC8vL/H09JTHHntMSkpKlH0EBQWZ3C4oKEhERNLS0iQiIkLp197eLhkZGRIQECBubm4SEREhR44cUdqrqqoEgOzbt08ef/xx8fDwkPDwcCksLOwxzpaWFvH29pY5c+ZYbL871ry8PJk6daq4ubmJ0WiU1NRUuX37tkkcf/zjH01uHxERIWlpaSb52r59u8yZM0c8PDwkJCREPvjgA5Px331JSEjocexERERkG6yLzGNlXUSkTfykFBFZ3Y0bN3D06FEkJiZi2LBhZu0jR460eLuioiIAwPHjx1FTU4P9+/cDAJqampCQkICCggKcPn0a48aNQ3x8PJqamgAAxcXFAICdO3eipqZGud7dli1bsHHjRmzYsAFnz57FU089hVmzZqGystKk35o1a7By5UqUlZUhNDQUCxcuxJ07dyzu89ixY7h27RpWrVplsb0z1q+++grx8fGYOnUqPv/8c+Tk5GDHjh144403LN6uNxkZGXjmmWdw9uxZxMfHY9GiRbhx4wYCAwOxb98+AMD58+dRU1ODLVu2DHj/RERENHhYF5nHyrqISLu4KEVEVnfx4kWICMLCwgZ0u9GjRwMAvLy8YDQaMWrUKADAjBkzsHjxYowfPx7jx4/Hn//8Z9y6dQv5+fkmtxs5ciSMRqNyvbsNGzYgNTUVCxYswAMPPID169djypQp2Lx5s0m/lStXYubMmQgNDUVGRgauXLmCixcvWtxnZ+HWV6zZ2dkIDAzE1q1bERYWhjlz5iAjIwMbN25ER0dH/xL0f0uWLMHChQsREhKCt956Cy0tLSgqKoKzs7OSMx8fHxiNRhgMhgHtm4iIiAYX6yJzrIuItIuLUkRkdSIC4Lsf2RwMdXV1WLZsGUJDQ2EwGGAwGNDc3Izq6up+76OxsRFff/01YmJiTLbHxMSgoqLCZFt4eLjyt5+fnzIGSzpj7UtFRQWio6NNchITE4Pm5mb85z//6dc+LI1v2LBhGDFiRI/jIyIiIvtiXWSOdRGRdnFRioisbty4cdDpdGZFzfe1ZMkSlJSUYPPmzSgsLERZWRm8vLzQ1tY24H11LwhFxGybq6urWf+e3rULDQ0FAHz55Ze93q+l++lepDo5OZkVc7dv3zbb193j67z9QN9VJCIiIttgXWSOdRGRdnFRioisbtSoUXjqqafwzjvvoKWlxay9p9Pyurm5AQDa29tNthcUFOCll15CfHw8Jk6cCL1ej2vXrpn0cXV1Nbvd3Tw9PeHv749Tp06ZbC8sLMT48eP7E5ZFsbGx8Pb2RlZWlsX2zlgnTJiAwsJCk+KqsLAQI0aMQEBAAIDvPm5fU1OjtDc2NqKqqmpA4+kph0RERGQfrIu6sC4iIi5KEZFNZGdno729HQ899BD27duHyspKVFRU4O2330Z0dLTF2/j4+MDDwwNHjx7FN998g4aGBgBASEgIdu3ahYqKCvzrX//CokWL4OHhYXLb++67DydOnEBtbS3q6+st7v+VV17B+vXrsXfvXpw/fx6rV69GWVkZkpKSvnecw4YNw3vvvYcPP/wQs2bNwvHjx3H58mWcOXMGq1atwrJlywAAy5cvx9WrV7FixQp8+eWX+OCDD5CWloaUlBQ4OX13aJ4xYwZ27dqFgoIC/Pvf/0ZCQgKcnZ0HNJ6goCDodDocPnwY//3vf9Hc3Py9YyMiIqLBwbqIdRER/Z/tT/hHRFr19ddfS2JiogQFBYmbm5sEBATIrFmz5OTJk0of3HXqYxGR7du3S2BgoDg5OSmnPv7ss88kKipK9Hq9jBs3Tv7xj3+YnSb40KFDEhISIi4uLv069bGrq2uPpz4uLS1VttXX1wsAkzFbUlxcLHPnzpXRo0eLXq+XkJAQ+c1vfiOVlZVKn75OfdzQ0CDPPPOMeHp6SmBgoPzlL3+xeOrju/MlImIwGGTnzp3K9bVr14rRaBSdTsdTHxMREQ0RrItYFxGRiE6kn78+R0RERERERERENEj49T0iIiIiIiIiIrI5LkoREREREREREZHNcVGKiIiIiIiIiIhsjotSRERERERERERkc1yUIiIiIiIiIiIim+OiFBERERERERER2RwXpYiIiIiIiIiIyOa4KEVERERERERERDbHRSkiIiIiIiIiIrI5LkoREREREREREZHNcVGKiIiIiIiIiIhsjotSRERERERERERkc/8DoncmqtxjMKIAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1200x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# Data series\n",
    "x = (replications['Replication Cite no.']/(2025-replications['Replication Year']))\n",
    "y = (replications['Average citations of papers in same volume']/(2025-replications['Replication Year']))\n",
    "\n",
    "# Compute statistics for annotations\n",
    "x_mean, x_median = x.mean(), x.median()\n",
    "y_mean, y_median = y.mean(), y.median()\n",
    "\n",
    "# Create histograms\n",
    "fig, axes = plt.subplots(1, 2, figsize=(12, 6), sharey=False)\n",
    "\n",
    "# Left: Histogram for replications\n",
    "axes[0].hist(x, bins=20, color=(0.6,0.6,0.6), alpha=0.7, label='Replication Cites')\n",
    "axes[0].axvline(x_mean, color='black', linestyle='dotted', linewidth=2, label=f'Mean: {x_mean:.1f}')\n",
    "axes[0].axvline(x_median, color='black', linestyle='dashed', linewidth=2, label=f'Median: {x_median:.1f}')\n",
    "axes[0].set_title('Replication Cites')\n",
    "axes[0].set_xlabel('Citation Count')\n",
    "axes[0].set_ylabel('Frequency')\n",
    "axes[0].legend()\n",
    "\n",
    "# Right: Histogram for originals\n",
    "axes[1].hist(y, bins=20, color=(0.6,0.6,0.6), alpha=0.7, label='Original Cites')\n",
    "axes[1].axvline(y_mean, color='black', linestyle='dotted', linewidth=2, label=f'Mean: {y_mean:.1f}')\n",
    "axes[1].axvline(y_median, color='black', linestyle='dashed', linewidth=2, label=f'Median: {y_median:.1f}')\n",
    "axes[1].set_title('Original Cites')\n",
    "axes[1].set_xlabel('Citation Count')\n",
    "axes[1].legend()\n",
    "\n",
    "# Adjust the y-axis limits to scale histograms similarly\n",
    "max_height = max(axes[0].get_ylim()[1], axes[1].get_ylim()[1])\n",
    "axes[0].set_ylim(0, max_height)\n",
    "axes[1].set_ylim(0, max_height)\n",
    "\n",
    "# Display the plots\n",
    "plt.tight_layout()\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "d7168e65-a14d-4a59-9303-75128bc705d2",
   "metadata": {},
   "outputs": [],
   "source": [
    "#import numpy as np\n",
    "#import pandas as pd\n",
    "#replications=pd.read_pickle('replications final')\n",
    "#originals=pd.read_pickle('originals final')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "fdf7e5b1-16dd-4f1b-bd6e-01f0e892ffd5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_723a4 caption {\n",
       "  text-align: center;\n",
       "  font-size: 150%;\n",
       "  color: blue;\n",
       "}\n",
       "#T_723a4 td {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_723a4 th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_723a4 .true {\n",
       "  border-right: solid;\n",
       "  border-color: blue;\n",
       "  vertical-align: top;\n",
       "}\n",
       "#T_723a4_row0_col0, #T_723a4_row0_col1, #T_723a4_row0_col2, #T_723a4_row0_col3, #T_723a4_row0_col4, #T_723a4_row1_col0, #T_723a4_row1_col1, #T_723a4_row1_col2, #T_723a4_row1_col3, #T_723a4_row1_col4, #T_723a4_row2_col0, #T_723a4_row2_col1, #T_723a4_row2_col2, #T_723a4_row2_col3, #T_723a4_row2_col4, #T_723a4_row3_col0, #T_723a4_row3_col1, #T_723a4_row3_col2, #T_723a4_row3_col3, #T_723a4_row3_col4, #T_723a4_row4_col0, #T_723a4_row4_col1, #T_723a4_row4_col2, #T_723a4_row4_col3, #T_723a4_row4_col4, #T_723a4_row5_col0, #T_723a4_row5_col1, #T_723a4_row5_col2, #T_723a4_row5_col3, #T_723a4_row5_col4, #T_723a4_row6_col0, #T_723a4_row6_col1, #T_723a4_row6_col2, #T_723a4_row6_col3, #T_723a4_row6_col4 {\n",
       "  width: 500px;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_723a4\">\n",
       "  <caption>Table 6 Annex: Comparing Citations per Page using the Same Issue Counterfactual</caption>\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_723a4_level0_col0\" class=\"col_heading level0 col0\" >(I) Replication Citations per Page</th>\n",
       "      <th id=\"T_723a4_level0_col1\" class=\"col_heading level0 col1\" >(II) Same Issue, Average Citations per Page</th>\n",
       "      <th id=\"T_723a4_level0_col2\" class=\"col_heading level0 col2\" >(III) Same Issue, Median Citations per Page</th>\n",
       "      <th id=\"T_723a4_level0_col3\" class=\"col_heading level0 col3\" >(IV) Ratio, Same Issue, Average Citations per Page</th>\n",
       "      <th id=\"T_723a4_level0_col4\" class=\"col_heading level0 col4\" >(V) Ratio, Same Issue, Median Citations per Page</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_723a4_level0_row0\" class=\"row_heading level0 row0\" >Mean</th>\n",
       "      <td id=\"T_723a4_row0_col0\" class=\"data row0 col0\" >0.26</td>\n",
       "      <td id=\"T_723a4_row0_col1\" class=\"data row0 col1\" >0.24</td>\n",
       "      <td id=\"T_723a4_row0_col2\" class=\"data row0 col2\" >0.16</td>\n",
       "      <td id=\"T_723a4_row0_col3\" class=\"data row0 col3\" >1.39</td>\n",
       "      <td id=\"T_723a4_row0_col4\" class=\"data row0 col4\" >2.31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_723a4_level0_row1\" class=\"row_heading level0 row1\" >Median</th>\n",
       "      <td id=\"T_723a4_row1_col0\" class=\"data row1 col0\" >0.12</td>\n",
       "      <td id=\"T_723a4_row1_col1\" class=\"data row1 col1\" >0.17</td>\n",
       "      <td id=\"T_723a4_row1_col2\" class=\"data row1 col2\" >0.11</td>\n",
       "      <td id=\"T_723a4_row1_col3\" class=\"data row1 col3\" >0.77</td>\n",
       "      <td id=\"T_723a4_row1_col4\" class=\"data row1 col4\" >1.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_723a4_level0_row2\" class=\"row_heading level0 row2\" >Min</th>\n",
       "      <td id=\"T_723a4_row2_col0\" class=\"data row2 col0\" >0.00</td>\n",
       "      <td id=\"T_723a4_row2_col1\" class=\"data row2 col1\" >0.01</td>\n",
       "      <td id=\"T_723a4_row2_col2\" class=\"data row2 col2\" >0.00</td>\n",
       "      <td id=\"T_723a4_row2_col3\" class=\"data row2 col3\" >0.00</td>\n",
       "      <td id=\"T_723a4_row2_col4\" class=\"data row2 col4\" >0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_723a4_level0_row3\" class=\"row_heading level0 row3\" >Q.1</th>\n",
       "      <td id=\"T_723a4_row3_col0\" class=\"data row3 col0\" >0.05</td>\n",
       "      <td id=\"T_723a4_row3_col1\" class=\"data row3 col1\" >0.08</td>\n",
       "      <td id=\"T_723a4_row3_col2\" class=\"data row3 col2\" >0.05</td>\n",
       "      <td id=\"T_723a4_row3_col3\" class=\"data row3 col3\" >0.32</td>\n",
       "      <td id=\"T_723a4_row3_col4\" class=\"data row3 col4\" >0.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_723a4_level0_row4\" class=\"row_heading level0 row4\" >Q.3</th>\n",
       "      <td id=\"T_723a4_row4_col0\" class=\"data row4 col0\" >0.28</td>\n",
       "      <td id=\"T_723a4_row4_col1\" class=\"data row4 col1\" >0.32</td>\n",
       "      <td id=\"T_723a4_row4_col2\" class=\"data row4 col2\" >0.20</td>\n",
       "      <td id=\"T_723a4_row4_col3\" class=\"data row4 col3\" >1.66</td>\n",
       "      <td id=\"T_723a4_row4_col4\" class=\"data row4 col4\" >2.47</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_723a4_level0_row5\" class=\"row_heading level0 row5\" >Max</th>\n",
       "      <td id=\"T_723a4_row5_col0\" class=\"data row5 col0\" >3.97</td>\n",
       "      <td id=\"T_723a4_row5_col1\" class=\"data row5 col1\" >2.24</td>\n",
       "      <td id=\"T_723a4_row5_col2\" class=\"data row5 col2\" >1.04</td>\n",
       "      <td id=\"T_723a4_row5_col3\" class=\"data row5 col3\" >35.70</td>\n",
       "      <td id=\"T_723a4_row5_col4\" class=\"data row5 col4\" >54.20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_723a4_level0_row6\" class=\"row_heading level0 row6\" ># Obs.</th>\n",
       "      <td id=\"T_723a4_row6_col0\" class=\"data row6 col0\" >417</td>\n",
       "      <td id=\"T_723a4_row6_col1\" class=\"data row6 col1\" >417</td>\n",
       "      <td id=\"T_723a4_row6_col2\" class=\"data row6 col2\" >417</td>\n",
       "      <td id=\"T_723a4_row6_col3\" class=\"data row6 col3\" >417</td>\n",
       "      <td id=\"T_723a4_row6_col4\" class=\"data row6 col4\" >417</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7f46c872f790>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Notes: this table is based on 417 replication papers. It compares citations per page of their replication paper and the citations per page of the \n",
      "non-replication papers published in the same issue the replication was published. The Ratio columns divide replication citations by the \n",
      "corresponding counterfactual citations. Since each replication has multiple counterfactuals we show results with both the mean and median of \n",
      "these counterfactuals. For some papers, Scopus had no information about the number of pages. Since each replication is matched to several \n",
      "counterfactuals, we explore both the distribution when using the mean counterfactual for each replication (column II and IV), and the \n",
      "median counterfactual for each replication (column III and V). Q1 and Q3 are the first and third quartile.\n",
      "share mean <1\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.5995203836930456"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "share median <1\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "0.4580335731414868"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# REFEREE DIDNT LIKE THIS SO MOVED TO APPENDIX\n",
    "# PER PAGE FOR THOSE THAT PAGES ARE AVAILABLE\n",
    "replications2=replications[replications['Replication page count'].notna()]\n",
    "\n",
    "styles = [{'selector': 'caption', 'props': 'text-align: center; font-size: 150%; color: blue'},\n",
    "        {'selector': 'td', 'props': 'text-align: center;'},\n",
    "         {'selector': 'th', 'props': 'text-align: center;'},  \n",
    "         {'selector': '.true', 'props': 'border-right:solid; border-color:blue; vertical-align:top'}]\n",
    "\n",
    "cols = [\"(I) Replication Citations per Page\", \"(II) Same Issue, Average Citations per Page\", \"(III) Same Issue, Median Citations per Page\", \"(IV) Ratio, Same Issue, Average Citations per Page\", \"(V) Ratio, Same Issue, Median Citations per Page\"]\n",
    "summarydf = pd.DataFrame(columns=cols)\n",
    "summarydf[\"(I) Replication Citations per Page\"] = (((replications2['Replication Cite no.']/replications2['Replication page count'])/(2025-replications2['Replication Year']))).describe()\n",
    "summarydf[\"(III) Same Issue, Median Citations per Page\"] = (((replications2['Median ratio in same volume'])/(2025-replications2['Replication Year']))).describe()\n",
    "summarydf[\"(II) Same Issue, Average Citations per Page\"] = (((replications2['Average ratio in same volume'])/(2025-replications2['Replication Year']))).describe()\n",
    "summarydf[\"(IV) Ratio, Same Issue, Average Citations per Page\"] = ((replications2['Replication Cite no.']/replications2['Replication page count'])/(replications2['Average ratio in same volume'])).describe()\n",
    "summarydf[\"(V) Ratio, Same Issue, Median Citations per Page\"] = ((replications2['Replication Cite no.']/replications2['Replication page count'])/(replications2['Median ratio in same volume'])).describe()\n",
    "\n",
    "a=summarydf.T[['mean','50%','min',\t'25%'\t,'75%',\t'max','count']]\n",
    "a=a.round(2)\n",
    "a['count']=a['count'].apply(lambda x: f'{x:.0f}')\n",
    "a=a.rename(columns={'50%': 'Median', 'mean': 'Mean', '25%': 'Q.1', '75%': 'Q.3', 'max': 'Max', 'min': 'Min', 'count': '# Obs.'})\n",
    "display(a.T.style.set_caption(\"Table 6 Annex: Comparing Citations per Page using the Same Issue Counterfactual\").format(precision=2).set_table_styles(styles).set_properties(**{'width': '500px'}))\n",
    "print('Notes: this table is based on 417 replication papers. It compares citations per page of their replication paper and the citations per page of the \\nnon-replication papers published in the same issue the replication was published. The Ratio columns divide replication citations by the \\ncorresponding counterfactual citations. Since each replication has multiple counterfactuals we show results with both the mean and median of \\nthese counterfactuals. For some papers, Scopus had no information about the number of pages. Since each replication is matched to several \\ncounterfactuals, we explore both the distribution when using the mean counterfactual for each replication (column II and IV), and the \\nmedian counterfactual for each replication (column III and V). Q1 and Q3 are the first and third quartile.')\n",
    "\n",
    "\n",
    "print('share mean <1')\n",
    "display(np.sum(((replications2['Replication Cite no.']/replications2['Replication page count'])/(replications2['Average ratio in same volume']))<1)/417)\n",
    "\n",
    "print('share median <1')\n",
    "display(np.sum(((replications2['Replication Cite no.']/replications2['Replication page count'])/(replications2['Median ratio in same volume']))<1)/417)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "26d9a8ac-19de-4445-b4f3-67bbbf637f40",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Compared to papers in same volume (average)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Replication cited more</th>\n",
       "      <td>0.257009</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Replication cited less</th>\n",
       "      <td>0.738318</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Replication cited the same</th>\n",
       "      <td>0.004673</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Number of papers</th>\n",
       "      <td>428.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                            Compared to papers in same volume (average)\n",
       "Replication cited more                                         0.257009\n",
       "Replication cited less                                         0.738318\n",
       "Replication cited the same                                     0.004673\n",
       "Number of papers                                             428.000000"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Compared to papers in same volume (median)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Replication cited more</th>\n",
       "      <td>0.383178</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Replication cited less</th>\n",
       "      <td>0.584112</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Replication cited the same</th>\n",
       "      <td>0.032710</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Number of papers</th>\n",
       "      <td>428.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                            Compared to papers in same volume (median)\n",
       "Replication cited more                                        0.383178\n",
       "Replication cited less                                        0.584112\n",
       "Replication cited the same                                    0.032710\n",
       "Number of papers                                            428.000000"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "# create a nice table that shows frequency of more/less citations\n",
    "# for mean\n",
    "diffcites = []\n",
    "morethan = []\n",
    "lessthan = []\n",
    "equal = []\n",
    "for i in range(0, len(replications['Average citations of papers in same volume'])):\n",
    "    diffcites += [replications['Replication Cite no.'][i]-replications['Average citations of papers in same volume'][i]]\n",
    "for i in diffcites:\n",
    "    if i > 0:\n",
    "        morethan += [i]\n",
    "    elif i < 0:\n",
    "        lessthan += [i]\n",
    "    elif i == 0:\n",
    "        equal += [i]\n",
    "\n",
    "originalshares = {'Replication cited more':(len(morethan)/(len(morethan)+len(lessthan)+len(equal))), 'Replication cited less':(len(lessthan)/(len(morethan)+len(lessthan)+len(equal))),\n",
    "                  'Replication cited the same':(len(equal)/(len(morethan)+len(lessthan)+len(equal))), 'Number of papers': int(len(morethan)+len(lessthan)+len(equal))}\n",
    "moreorless2=pd.DataFrame.from_dict(originalshares, orient='index', columns=[\"Compared to papers in same volume (average)\"] )\n",
    "display(moreorless2)\n",
    "\n",
    "# for median\n",
    "diffcites = []\n",
    "morethan = []\n",
    "lessthan = []\n",
    "equal = []\n",
    "for i in range(0, len(replications['Median citations of papers in same volume'])):\n",
    "    diffcites += [replications['Replication Cite no.'][i]-replications['Median citations of papers in same volume'][i]]\n",
    "for i in diffcites:\n",
    "    if i > 0:\n",
    "        morethan += [i]\n",
    "    elif i < 0:\n",
    "        lessthan += [i]\n",
    "    elif i == 0:\n",
    "        equal += [i]\n",
    "\n",
    "originalshares = {'Replication cited more':(len(morethan)/(len(morethan)+len(lessthan)+len(equal))), 'Replication cited less':(len(lessthan)/(len(morethan)+len(lessthan)+len(equal))),\n",
    "                  'Replication cited the same':(len(equal)/(len(morethan)+len(lessthan)+len(equal))), 'Number of papers': int(len(morethan)+len(lessthan)+len(equal))}\n",
    "moreorless2=pd.DataFrame.from_dict(originalshares, orient='index', columns=[\"Compared to papers in same volume (median)\"] )\n",
    "moreorless2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "417f4a15-b823-4a22-8f87-7ae174466cbd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:        Ratio Citations   R-squared:                       0.000\n",
      "Model:                            OLS   Adj. R-squared:                  0.000\n",
      "Method:                 Least Squares   F-statistic:                       nan\n",
      "Date:                Sat, 14 Dec 2024   Prob (F-statistic):                nan\n",
      "Time:                        09:01:24   Log-Likelihood:                -903.07\n",
      "No. Observations:                 428   AIC:                             1808.\n",
      "Df Residuals:                     427   BIC:                             1812.\n",
      "Df Model:                           0                                         \n",
      "Covariance Type:                  HC2                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Constant       1.0149      0.097     10.508      0.000       0.825       1.205\n",
      "==============================================================================\n",
      "Omnibus:                      644.882   Durbin-Watson:                   1.862\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):           168940.439\n",
      "Skew:                           7.962   Prob(JB):                         0.00\n",
      "Kurtosis:                      99.019   Cond. No.                         1.00\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors are heteroscedasticity robust (HC2)\n",
      "                         QuantReg Regression Results                          \n",
      "==============================================================================\n",
      "Dep. Variable:        Ratio Citations   Pseudo R-squared:           -2.220e-16\n",
      "Model:                       QuantReg   Bandwidth:                      0.4151\n",
      "Method:                 Least Squares   Sparsity:                        1.497\n",
      "Date:                Sat, 14 Dec 2024   No. Observations:                  428\n",
      "Time:                        09:01:24   Df Residuals:                      427\n",
      "                                        Df Model:                            0\n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Constant       0.4999      0.036     13.815      0.000       0.429       0.571\n",
      "==============================================================================\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:        Ratio Citations   R-squared:                       0.000\n",
      "Model:                            OLS   Adj. R-squared:                  0.000\n",
      "Method:                 Least Squares   F-statistic:                       nan\n",
      "Date:                Sat, 14 Dec 2024   Prob (F-statistic):                nan\n",
      "Time:                        09:01:24   Log-Likelihood:                -1148.9\n",
      "No. Observations:                 428   AIC:                             2300.\n",
      "Df Residuals:                     427   BIC:                             2304.\n",
      "Df Model:                           0                                         \n",
      "Covariance Type:                  HC2                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Constant       1.6582      0.172      9.666      0.000       1.321       1.995\n",
      "==============================================================================\n",
      "Omnibus:                      624.919   Durbin-Watson:                   1.902\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):           118676.306\n",
      "Skew:                           7.639   Prob(JB):                         0.00\n",
      "Kurtosis:                      83.133   Cond. No.                         1.00\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors are heteroscedasticity robust (HC2)\n",
      "                         QuantReg Regression Results                          \n",
      "==============================================================================\n",
      "Dep. Variable:        Ratio Citations   Pseudo R-squared:                0.000\n",
      "Model:                       QuantReg   Bandwidth:                      0.6484\n",
      "Method:                 Least Squares   Sparsity:                        2.167\n",
      "Date:                Sat, 14 Dec 2024   No. Observations:                  428\n",
      "Time:                        09:01:24   Df Residuals:                      427\n",
      "                                        Df Model:                            0\n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Constant       0.7499      0.052     14.319      0.000       0.647       0.853\n",
      "==============================================================================\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Mean Ratio, Mean Same Volume Counterfactual</th>\n",
       "      <th>Median Ratio, Mean Same Volume Counterfactual</th>\n",
       "      <th>Mean Ratio, Median Same Volume Counterfactual</th>\n",
       "      <th>Median Ratio, Median Same Volume Counterfactual</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.014918</td>\n",
       "      <td>0.499939</td>\n",
       "      <td>1.658247</td>\n",
       "      <td>0.749945</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.096582</td>\n",
       "      <td>0.036188</td>\n",
       "      <td>0.171548</td>\n",
       "      <td>0.052374</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.877317</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000143</td>\n",
       "      <td>0.000002</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Mean Ratio, Mean Same Volume Counterfactual  \\\n",
       "0                                    1.014918   \n",
       "1                                    0.096582   \n",
       "2                                    0.877317   \n",
       "\n",
       "  Median Ratio, Mean Same Volume Counterfactual  \\\n",
       "0                                      0.499939   \n",
       "1                                      0.036188   \n",
       "2                                           0.0   \n",
       "\n",
       "  Mean Ratio, Median Same Volume Counterfactual  \\\n",
       "0                                      1.658247   \n",
       "1                                      0.171548   \n",
       "2                                      0.000143   \n",
       "\n",
       "  Median Ratio, Median Same Volume Counterfactual  \n",
       "0                                        0.749945  \n",
       "1                                        0.052374  \n",
       "2                                        0.000002  "
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# regression analysis mean\n",
    "import statsmodels.api as sm \n",
    "from statsmodels.regression.quantile_regression import QuantReg\n",
    "# prepare data\n",
    "allresults=[]\n",
    "\n",
    "allest4=pd.DataFrame(columns=['Mean Ratio, Mean Same Volume Counterfactual', 'Median Ratio, Mean Same Volume Counterfactual','Mean Ratio, Median Same Volume Counterfactual', 'Median Ratio, Median Same Volume Counterfactual'])\n",
    "\n",
    "\n",
    "a=pd.DataFrame()\n",
    "a['Ratio Citations']=replications['Replication Cite no.']/replications['Average citations of papers in same volume']\n",
    "a['Constant']=1\n",
    "a=a.dropna()\n",
    "# OLS regression without page nrs\n",
    "x = a['Constant']\n",
    "y=a['Ratio Citations']\n",
    "\n",
    "model = sm.OLS(y, x, missing='drop')\n",
    "results = model.fit(use_t=True, cov_type='HC2')\n",
    "allest4.at[0,'Mean Ratio, Mean Same Volume Counterfactual']=results.params[0]\n",
    "allest4.at[1,'Mean Ratio, Mean Same Volume Counterfactual']=results.bse[0]\n",
    "hypotheses = 'Constant = 1'\n",
    "t_test = results.t_test(hypotheses)\n",
    "allest4.at[2,'Mean Ratio, Mean Same Volume Counterfactual']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "print(results.summary())\n",
    "allresults += [results]\n",
    "\n",
    "quantile = 0.5\n",
    "model = sm.QuantReg(y, x)\n",
    "results = model.fit(q=quantile)\n",
    "allest4.at[0,'Median Ratio, Mean Same Volume Counterfactual']=results.params[0]\n",
    "allest4.at[1,'Median Ratio, Mean Same Volume Counterfactual']=results.bse[0]\n",
    "hypotheses = 'Constant = 1'\n",
    "t_test = results.t_test(hypotheses)\n",
    "allest4.at[2,'Median Ratio, Mean Same Volume Counterfactual']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "print(results.summary())\n",
    "\n",
    "allresults += [results]\n",
    "\n",
    "\n",
    "a=pd.DataFrame()\n",
    "a['Ratio Citations']=replications['Replication Cite no.']/replications['Median citations of papers in same volume']\n",
    "a['Constant']=1\n",
    "a=a.dropna()\n",
    "# OLS regression without page nrs\n",
    "x = a['Constant']\n",
    "y=a['Ratio Citations']\n",
    "\n",
    "model = sm.OLS(y, x, missing='drop')\n",
    "results = model.fit(use_t=True, cov_type='HC2')\n",
    "allest4.at[0,'Mean Ratio, Median Same Volume Counterfactual']=results.params[0]\n",
    "allest4.at[1,'Mean Ratio, Median Same Volume Counterfactual']=results.bse[0]\n",
    "hypotheses = 'Constant = 1'\n",
    "t_test = results.t_test(hypotheses)\n",
    "allest4.at[2,'Mean Ratio, Median Same Volume Counterfactual']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "print(results.summary())\n",
    "allresults += [results]\n",
    "\n",
    "quantile = 0.5\n",
    "model = sm.QuantReg(y, x)\n",
    "results = model.fit(q=quantile)\n",
    "allest4.at[0,'Median Ratio, Median Same Volume Counterfactual']=results.params[0]\n",
    "allest4.at[1,'Median Ratio, Median Same Volume Counterfactual']=results.bse[0]\n",
    "hypotheses = 'Constant = 1'\n",
    "t_test = results.t_test(hypotheses)\n",
    "allest4.at[2,'Median Ratio, Median Same Volume Counterfactual']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "print(results.summary())\n",
    "\n",
    "allresults += [results]\n",
    "\n",
    "allest4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "98415bb2-5996-4493-b33e-7a84f3d82a10",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:        Ratio Citations   R-squared:                       0.000\n",
      "Model:                            OLS   Adj. R-squared:                  0.000\n",
      "Method:                 Least Squares   F-statistic:                       nan\n",
      "Date:                Sat, 14 Dec 2024   Prob (F-statistic):                nan\n",
      "Time:                        09:01:02   Log-Likelihood:                -957.93\n",
      "No. Observations:                 417   AIC:                             1918.\n",
      "Df Residuals:                     416   BIC:                             1922.\n",
      "Df Model:                           0                                         \n",
      "Covariance Type:                  HC2                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Constant       1.3947      0.118     11.819      0.000       1.163       1.627\n",
      "==============================================================================\n",
      "Omnibus:                      642.412   Durbin-Watson:                   1.970\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):           184430.348\n",
      "Skew:                           8.242   Prob(JB):                         0.00\n",
      "Kurtosis:                     104.701   Cond. No.                         1.00\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors are heteroscedasticity robust (HC2)\n",
      "                         QuantReg Regression Results                          \n",
      "==============================================================================\n",
      "Dep. Variable:        Ratio Citations   Pseudo R-squared:           -1.600e-12\n",
      "Model:                       QuantReg   Bandwidth:                      0.6650\n",
      "Method:                 Least Squares   Sparsity:                        2.142\n",
      "Date:                Sat, 14 Dec 2024   No. Observations:                  417\n",
      "Time:                        09:01:02   Df Residuals:                      416\n",
      "                                        Df Model:                            0\n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Constant       0.7735      0.052     14.747      0.000       0.670       0.877\n",
      "==============================================================================\n",
      "                            OLS Regression Results                            \n",
      "==============================================================================\n",
      "Dep. Variable:        Ratio Citations   R-squared:                      -0.000\n",
      "Model:                            OLS   Adj. R-squared:                 -0.000\n",
      "Method:                 Least Squares   F-statistic:                       nan\n",
      "Date:                Sat, 14 Dec 2024   Prob (F-statistic):                nan\n",
      "Time:                        09:01:02   Log-Likelihood:                -1198.4\n",
      "No. Observations:                 417   AIC:                             2399.\n",
      "Df Residuals:                     416   BIC:                             2403.\n",
      "Df Model:                           0                                         \n",
      "Covariance Type:                  HC2                                         \n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Constant       2.3097      0.210     10.996      0.000       1.897       2.723\n",
      "==============================================================================\n",
      "Omnibus:                      588.875   Durbin-Watson:                   1.986\n",
      "Prob(Omnibus):                  0.000   Jarque-Bera (JB):            94002.339\n",
      "Skew:                           7.202   Prob(JB):                         0.00\n",
      "Kurtosis:                      75.130   Cond. No.                         1.00\n",
      "==============================================================================\n",
      "\n",
      "Notes:\n",
      "[1] Standard Errors are heteroscedasticity robust (HC2)\n",
      "                         QuantReg Regression Results                          \n",
      "==============================================================================\n",
      "Dep. Variable:        Ratio Citations   Pseudo R-squared:           -1.258e-12\n",
      "Model:                       QuantReg   Bandwidth:                      0.9622\n",
      "Method:                 Least Squares   Sparsity:                        3.061\n",
      "Date:                Sat, 14 Dec 2024   No. Observations:                  417\n",
      "Time:                        09:01:02   Df Residuals:                      416\n",
      "                                        Df Model:                            0\n",
      "==============================================================================\n",
      "                 coef    std err          t      P>|t|      [0.025      0.975]\n",
      "------------------------------------------------------------------------------\n",
      "Constant       1.1055      0.075     14.748      0.000       0.958       1.253\n",
      "==============================================================================\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Mean Ratio per Page, Mean Same Volume Counterfactual</th>\n",
       "      <th>Median Ratio per Page, Mean Same Volume Counterfactual</th>\n",
       "      <th>Mean Ratio per Page, Median Same Volume Counterfactual</th>\n",
       "      <th>Median Ratio per Page, Median Same Volume Counterfactual</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.39465</td>\n",
       "      <td>0.773479</td>\n",
       "      <td>2.309736</td>\n",
       "      <td>1.105512</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.117997</td>\n",
       "      <td>0.052448</td>\n",
       "      <td>0.21006</td>\n",
       "      <td>0.07496</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.000899</td>\n",
       "      <td>0.00002</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.160005</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Mean Ratio per Page, Mean Same Volume Counterfactual  \\\n",
       "0                                            1.39465     \n",
       "1                                           0.117997     \n",
       "2                                           0.000899     \n",
       "\n",
       "  Median Ratio per Page, Mean Same Volume Counterfactual  \\\n",
       "0                                           0.773479       \n",
       "1                                           0.052448       \n",
       "2                                            0.00002       \n",
       "\n",
       "  Mean Ratio per Page, Median Same Volume Counterfactual  \\\n",
       "0                                           2.309736       \n",
       "1                                            0.21006       \n",
       "2                                                0.0       \n",
       "\n",
       "  Median Ratio per Page, Median Same Volume Counterfactual  \n",
       "0                                           1.105512        \n",
       "1                                            0.07496        \n",
       "2                                           0.160005        "
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# regression analysis mean\n",
    "import statsmodels.api as sm \n",
    "from statsmodels.regression.quantile_regression import QuantReg\n",
    "# prepare data\n",
    "allresults=[]\n",
    "\n",
    "allest5=pd.DataFrame(columns=['Mean Ratio per Page, Mean Same Volume Counterfactual', 'Median Ratio per Page, Mean Same Volume Counterfactual','Mean Ratio per Page, Median Same Volume Counterfactual', 'Median Ratio per Page, Median Same Volume Counterfactual'])\n",
    "\n",
    "\n",
    "a=pd.DataFrame()\n",
    "a['Ratio Citations']=(replications2['Replication Cite no.']/replications2['Replication page count'])/(replications2['Average ratio in same volume'])\n",
    "a['Constant']=1\n",
    "a=a.dropna()\n",
    "# OLS regression without page nrs\n",
    "x = a['Constant']\n",
    "y=a['Ratio Citations']\n",
    "\n",
    "model = sm.OLS(y, x, missing='drop')\n",
    "results = model.fit(use_t=True, cov_type='HC2')\n",
    "allest5.at[0,'Mean Ratio per Page, Mean Same Volume Counterfactual']=results.params[0]\n",
    "allest5.at[1,'Mean Ratio per Page, Mean Same Volume Counterfactual']=results.bse[0]\n",
    "hypotheses = 'Constant = 1'\n",
    "t_test = results.t_test(hypotheses)\n",
    "allest5.at[2,'Mean Ratio per Page, Mean Same Volume Counterfactual']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "\n",
    "print(results.summary())\n",
    "allresults += [results]\n",
    "\n",
    "quantile = 0.5\n",
    "model = sm.QuantReg(y, x)\n",
    "results = model.fit(q=quantile)\n",
    "allest5.at[0,'Median Ratio per Page, Mean Same Volume Counterfactual']=results.params[0]\n",
    "allest5.at[1,'Median Ratio per Page, Mean Same Volume Counterfactual']=results.bse[0]\n",
    "hypotheses = 'Constant = 1'\n",
    "t_test = results.t_test(hypotheses)\n",
    "allest5.at[2,'Median Ratio per Page, Mean Same Volume Counterfactual']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "\n",
    "print(results.summary())\n",
    "\n",
    "allresults += [results]\n",
    "\n",
    "\n",
    "a=pd.DataFrame()\n",
    "a['Ratio Citations']=(replications2['Replication Cite no.']/replications2['Replication page count'])/(replications2['Median ratio in same volume'])\n",
    "a['Constant']=1\n",
    "a=a.dropna()\n",
    "# OLS regression without page nrs\n",
    "x = a['Constant']\n",
    "y=a['Ratio Citations']\n",
    "\n",
    "model = sm.OLS(y, x, missing='drop')\n",
    "results = model.fit(use_t=True, cov_type='HC2')\n",
    "allest5.at[0,'Mean Ratio per Page, Median Same Volume Counterfactual']=results.params[0]\n",
    "allest5.at[1,'Mean Ratio per Page, Median Same Volume Counterfactual']=results.bse[0]\n",
    "hypotheses = 'Constant = 1'\n",
    "t_test = results.t_test(hypotheses)\n",
    "allest5.at[2,'Mean Ratio per Page, Median Same Volume Counterfactual']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "\n",
    "print(results.summary())\n",
    "allresults += [results]\n",
    "\n",
    "quantile = 0.5\n",
    "model = sm.QuantReg(y, x)\n",
    "results = model.fit(q=quantile)\n",
    "allest5.at[0,'Median Ratio per Page, Median Same Volume Counterfactual']=results.params[0]\n",
    "allest5.at[1,'Median Ratio per Page, Median Same Volume Counterfactual']=results.bse[0]\n",
    "hypotheses = 'Constant = 1'\n",
    "t_test = results.t_test(hypotheses)\n",
    "allest5.at[2,'Median Ratio per Page, Median Same Volume Counterfactual']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "\n",
    "print(results.summary())\n",
    "\n",
    "allresults += [results]\n",
    "\n",
    "\n",
    "\n",
    "allest5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "c234817a-13e6-4e68-93eb-0ef3573b016e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_fb6a6 caption {\n",
       "  text-align: center;\n",
       "  font-size: 150%;\n",
       "  color: blue;\n",
       "}\n",
       "#T_fb6a6 td {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_fb6a6 th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_fb6a6 .true {\n",
       "  border-right: solid;\n",
       "  border-color: blue;\n",
       "  vertical-align: top;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_fb6a6\">\n",
       "  <caption>Table 7 Annex: Mean/Median of Ratio of Replication Citations to Same Issue Counterfactual Citations - Counterfactuals Relevant to Editors</caption>\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_fb6a6_level0_col0\" class=\"col_heading level0 col0\" colspan=\"2\">Traditional Counterfactual</th>\n",
       "      <th id=\"T_fb6a6_level0_col2\" class=\"col_heading level0 col2\" colspan=\"4\">Same Issue Counterfactual</th>\n",
       "      <th id=\"T_fb6a6_level0_col6\" class=\"col_heading level0 col6\" colspan=\"4\">Same Issue Counterfactual, per Page</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th class=\"blank level1\" >&nbsp;</th>\n",
       "      <th id=\"T_fb6a6_level1_col0\" class=\"col_heading level1 col0\" >(I) Mean, Citation Ratio</th>\n",
       "      <th id=\"T_fb6a6_level1_col1\" class=\"col_heading level1 col1\" >(II) Median, Citation Ratio</th>\n",
       "      <th id=\"T_fb6a6_level1_col2\" class=\"col_heading level1 col2\" >(III) Mean, Mean Citation Ratio</th>\n",
       "      <th id=\"T_fb6a6_level1_col3\" class=\"col_heading level1 col3\" >(IV) Median, Mean Citation Ratio</th>\n",
       "      <th id=\"T_fb6a6_level1_col4\" class=\"col_heading level1 col4\" >(V) Mean, Median Citation Ratio</th>\n",
       "      <th id=\"T_fb6a6_level1_col5\" class=\"col_heading level1 col5\" >(VI) Median, Median Citation Ratio</th>\n",
       "      <th id=\"T_fb6a6_level1_col6\" class=\"col_heading level1 col6\" >(VII) Mean, Mean Citation Ratio</th>\n",
       "      <th id=\"T_fb6a6_level1_col7\" class=\"col_heading level1 col7\" >(VIII) Median, Mean Citation Ratio</th>\n",
       "      <th id=\"T_fb6a6_level1_col8\" class=\"col_heading level1 col8\" >(IX) Mean, Median Citation Ratio</th>\n",
       "      <th id=\"T_fb6a6_level1_col9\" class=\"col_heading level1 col9\" >(X) Median, Median Citation Ratio</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_fb6a6_level0_row0\" class=\"row_heading level0 row0\" >Mean/Median</th>\n",
       "      <td id=\"T_fb6a6_row0_col0\" class=\"data row0 col0\" >0.35</td>\n",
       "      <td id=\"T_fb6a6_row0_col1\" class=\"data row0 col1\" >0.11</td>\n",
       "      <td id=\"T_fb6a6_row0_col2\" class=\"data row0 col2\" >1.01</td>\n",
       "      <td id=\"T_fb6a6_row0_col3\" class=\"data row0 col3\" >0.50</td>\n",
       "      <td id=\"T_fb6a6_row0_col4\" class=\"data row0 col4\" >1.66</td>\n",
       "      <td id=\"T_fb6a6_row0_col5\" class=\"data row0 col5\" >0.75</td>\n",
       "      <td id=\"T_fb6a6_row0_col6\" class=\"data row0 col6\" >1.39</td>\n",
       "      <td id=\"T_fb6a6_row0_col7\" class=\"data row0 col7\" >0.77</td>\n",
       "      <td id=\"T_fb6a6_row0_col8\" class=\"data row0 col8\" >2.31</td>\n",
       "      <td id=\"T_fb6a6_row0_col9\" class=\"data row0 col9\" >1.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_fb6a6_level0_row1\" class=\"row_heading level0 row1\" >Standard Error</th>\n",
       "      <td id=\"T_fb6a6_row1_col0\" class=\"data row1 col0\" >0.15</td>\n",
       "      <td id=\"T_fb6a6_row1_col1\" class=\"data row1 col1\" >0.01</td>\n",
       "      <td id=\"T_fb6a6_row1_col2\" class=\"data row1 col2\" >0.10</td>\n",
       "      <td id=\"T_fb6a6_row1_col3\" class=\"data row1 col3\" >0.04</td>\n",
       "      <td id=\"T_fb6a6_row1_col4\" class=\"data row1 col4\" >0.17</td>\n",
       "      <td id=\"T_fb6a6_row1_col5\" class=\"data row1 col5\" >0.05</td>\n",
       "      <td id=\"T_fb6a6_row1_col6\" class=\"data row1 col6\" >0.12</td>\n",
       "      <td id=\"T_fb6a6_row1_col7\" class=\"data row1 col7\" >0.05</td>\n",
       "      <td id=\"T_fb6a6_row1_col8\" class=\"data row1 col8\" >0.21</td>\n",
       "      <td id=\"T_fb6a6_row1_col9\" class=\"data row1 col9\" >0.07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_fb6a6_level0_row2\" class=\"row_heading level0 row2\" >T-Stat</th>\n",
       "      <td id=\"T_fb6a6_row2_col0\" class=\"data row2 col0\" >-4.29</td>\n",
       "      <td id=\"T_fb6a6_row2_col1\" class=\"data row2 col1\" >-104.45</td>\n",
       "      <td id=\"T_fb6a6_row2_col2\" class=\"data row2 col2\" >0.15</td>\n",
       "      <td id=\"T_fb6a6_row2_col3\" class=\"data row2 col3\" >-13.82</td>\n",
       "      <td id=\"T_fb6a6_row2_col4\" class=\"data row2 col4\" >3.84</td>\n",
       "      <td id=\"T_fb6a6_row2_col5\" class=\"data row2 col5\" >-4.77</td>\n",
       "      <td id=\"T_fb6a6_row2_col6\" class=\"data row2 col6\" >3.34</td>\n",
       "      <td id=\"T_fb6a6_row2_col7\" class=\"data row2 col7\" >-4.32</td>\n",
       "      <td id=\"T_fb6a6_row2_col8\" class=\"data row2 col8\" >6.24</td>\n",
       "      <td id=\"T_fb6a6_row2_col9\" class=\"data row2 col9\" >1.41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_fb6a6_level0_row3\" class=\"row_heading level0 row3\" >P-value</th>\n",
       "      <td id=\"T_fb6a6_row3_col0\" class=\"data row3 col0\" >0.00</td>\n",
       "      <td id=\"T_fb6a6_row3_col1\" class=\"data row3 col1\" >0.00</td>\n",
       "      <td id=\"T_fb6a6_row3_col2\" class=\"data row3 col2\" >0.88</td>\n",
       "      <td id=\"T_fb6a6_row3_col3\" class=\"data row3 col3\" >0.00</td>\n",
       "      <td id=\"T_fb6a6_row3_col4\" class=\"data row3 col4\" >0.00</td>\n",
       "      <td id=\"T_fb6a6_row3_col5\" class=\"data row3 col5\" >0.00</td>\n",
       "      <td id=\"T_fb6a6_row3_col6\" class=\"data row3 col6\" >0.00</td>\n",
       "      <td id=\"T_fb6a6_row3_col7\" class=\"data row3 col7\" >0.00</td>\n",
       "      <td id=\"T_fb6a6_row3_col8\" class=\"data row3 col8\" >0.00</td>\n",
       "      <td id=\"T_fb6a6_row3_col9\" class=\"data row3 col9\" >0.16</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7f468cc7d340>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Notes: this table provides means and medians of the Ratio of Replication Citations to Counterfactual Citations, for various counterfactuals relevant to editors. It also provides the standard errors of these means and medians which allows to analyze whether the ratio is statistically significantly \n",
      "different from one. The T-Stat and P-value rows give the t-statistic and p-value of this test. Columns I and II are based on table 2, columns III to VI on table 3, and columns VIII to X on table 4.  \n"
     ]
    }
   ],
   "source": [
    "# this is the one with per page citations - referee didnt like per page so kick out below\n",
    "cols = pd.MultiIndex.from_tuples([(\"Traditional Counterfactual\", \"(I) Mean, Citation Ratio\"), \n",
    "                                  (\"Traditional Counterfactual\", \"(II) Median, Citation Ratio\"),\n",
    "                                  (\"Same Issue Counterfactual\", \"(III) Mean, Mean Citation Ratio\"), \n",
    "                                  (\"Same Issue Counterfactual\", \"(IV) Median, Mean Citation Ratio\"),\n",
    "                                    (\"Same Issue Counterfactual\", \"(V) Mean, Median Citation Ratio\"), \n",
    "                                  (\"Same Issue Counterfactual\", \"(VI) Median, Median Citation Ratio\"),\n",
    "                                    (\"Same Issue Counterfactual, per Page\", \"(VII) Mean, Mean Citation Ratio\"), \n",
    "                                  (\"Same Issue Counterfactual, per Page\", \"(VIII) Median, Mean Citation Ratio\"),\n",
    "                                    (\"Same Issue Counterfactual, per Page\", \"(IX) Mean, Median Citation Ratio\"), \n",
    "                                  (\"Same Issue Counterfactual, per Page\", \"(X) Median, Median Citation Ratio\")])\n",
    "summarydf = pd.DataFrame(columns=cols)\n",
    "summarydf[(\"Traditional Counterfactual\", \"(I) Mean, Citation Ratio\")]=allest1['Mean Ratio, Standard Counterfactual']\n",
    "summarydf[(\"Traditional Counterfactual\", \"(II) Median, Citation Ratio\")]=allest1['Median Ratio, Standard Counterfactual']\n",
    "summarydf[(\"Same Issue Counterfactual\", \"(III) Mean, Mean Citation Ratio\")]=allest4['Mean Ratio, Mean Same Volume Counterfactual']\n",
    "summarydf[(\"Same Issue Counterfactual\", \"(IV) Median, Mean Citation Ratio\")]=allest4['Median Ratio, Mean Same Volume Counterfactual']\n",
    "summarydf[(\"Same Issue Counterfactual\", \"(V) Mean, Median Citation Ratio\")]=allest4['Mean Ratio, Median Same Volume Counterfactual']\n",
    "summarydf[(\"Same Issue Counterfactual\", \"(VI) Median, Median Citation Ratio\")]=allest4['Median Ratio, Median Same Volume Counterfactual']\n",
    "\n",
    "summarydf[(\"Same Issue Counterfactual, per Page\", \"(VII) Mean, Mean Citation Ratio\")]=allest5['Mean Ratio per Page, Mean Same Volume Counterfactual']\n",
    "summarydf[(\"Same Issue Counterfactual, per Page\", \"(VIII) Median, Mean Citation Ratio\")]=allest5['Median Ratio per Page, Mean Same Volume Counterfactual']\n",
    "summarydf[(\"Same Issue Counterfactual, per Page\", \"(IX) Mean, Median Citation Ratio\")]=allest5['Mean Ratio per Page, Median Same Volume Counterfactual']\n",
    "summarydf[(\"Same Issue Counterfactual, per Page\", \"(X) Median, Median Citation Ratio\")]=allest5['Median Ratio per Page, Median Same Volume Counterfactual']\n",
    "\n",
    "\n",
    "summarydf.index=['Mean/Median', 'Standard Error', 'P-value']\n",
    "\n",
    "summarydf.loc['T-Stat']=(summarydf.loc['Mean/Median']-1)/summarydf.loc['Standard Error']\n",
    "summarydf=summarydf.reindex(['Mean/Median', 'Standard Error', 'T-Stat', 'P-value'])\n",
    "\n",
    "display(summarydf.style.set_caption(\"Table 7 Annex: Mean/Median of Ratio of Replication Citations to Same Issue Counterfactual Citations - Counterfactuals Relevant to Editors\").format(precision=2).set_table_styles(styles))\n",
    "print('Notes: this table provides means and medians of the Ratio of Replication Citations to Counterfactual Citations, for various counterfactuals relevant to editors. It also provides the standard errors of these means and medians which allows to analyze whether the ratio is statistically significantly \\ndifferent from one. The T-Stat and P-value rows give the t-statistic and p-value of this test. Columns I and II are based on table 2, columns III to VI on table 3, and columns VIII to X on table 4.  ')\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "id": "d2a92af0-00bb-4ffa-925d-6e0ff0298bc6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_16cd6 caption {\n",
       "  text-align: center;\n",
       "  font-size: 150%;\n",
       "  color: blue;\n",
       "}\n",
       "#T_16cd6 td {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_16cd6 th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_16cd6 .true {\n",
       "  border-right: solid;\n",
       "  border-color: blue;\n",
       "  vertical-align: top;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_16cd6\">\n",
       "  <caption>Table 7: Mean/Median of Ratio of Replication Citations to Same Issue Counterfactual Citations - Counterfactuals Relevant to Editors</caption>\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_16cd6_level0_col0\" class=\"col_heading level0 col0\" colspan=\"2\">Traditional Counterfactual</th>\n",
       "      <th id=\"T_16cd6_level0_col2\" class=\"col_heading level0 col2\" colspan=\"4\">Same Issue Counterfactual</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th class=\"blank level1\" >&nbsp;</th>\n",
       "      <th id=\"T_16cd6_level1_col0\" class=\"col_heading level1 col0\" >(I) Mean, Citation Ratio</th>\n",
       "      <th id=\"T_16cd6_level1_col1\" class=\"col_heading level1 col1\" >(II) Median, Citation Ratio</th>\n",
       "      <th id=\"T_16cd6_level1_col2\" class=\"col_heading level1 col2\" >(III) Mean, Mean Citation Ratio</th>\n",
       "      <th id=\"T_16cd6_level1_col3\" class=\"col_heading level1 col3\" >(IV) Median, Mean Citation Ratio</th>\n",
       "      <th id=\"T_16cd6_level1_col4\" class=\"col_heading level1 col4\" >(V) Mean, Median Citation Ratio</th>\n",
       "      <th id=\"T_16cd6_level1_col5\" class=\"col_heading level1 col5\" >(VI) Median, Median Citation Ratio</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_16cd6_level0_row0\" class=\"row_heading level0 row0\" >Mean/Median</th>\n",
       "      <td id=\"T_16cd6_row0_col0\" class=\"data row0 col0\" >0.35</td>\n",
       "      <td id=\"T_16cd6_row0_col1\" class=\"data row0 col1\" >0.11</td>\n",
       "      <td id=\"T_16cd6_row0_col2\" class=\"data row0 col2\" >1.01</td>\n",
       "      <td id=\"T_16cd6_row0_col3\" class=\"data row0 col3\" >0.50</td>\n",
       "      <td id=\"T_16cd6_row0_col4\" class=\"data row0 col4\" >1.66</td>\n",
       "      <td id=\"T_16cd6_row0_col5\" class=\"data row0 col5\" >0.75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_16cd6_level0_row1\" class=\"row_heading level0 row1\" >Standard Error</th>\n",
       "      <td id=\"T_16cd6_row1_col0\" class=\"data row1 col0\" >0.15</td>\n",
       "      <td id=\"T_16cd6_row1_col1\" class=\"data row1 col1\" >0.01</td>\n",
       "      <td id=\"T_16cd6_row1_col2\" class=\"data row1 col2\" >0.10</td>\n",
       "      <td id=\"T_16cd6_row1_col3\" class=\"data row1 col3\" >0.04</td>\n",
       "      <td id=\"T_16cd6_row1_col4\" class=\"data row1 col4\" >0.17</td>\n",
       "      <td id=\"T_16cd6_row1_col5\" class=\"data row1 col5\" >0.05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_16cd6_level0_row2\" class=\"row_heading level0 row2\" >T-Stat</th>\n",
       "      <td id=\"T_16cd6_row2_col0\" class=\"data row2 col0\" >-4.29</td>\n",
       "      <td id=\"T_16cd6_row2_col1\" class=\"data row2 col1\" >-104.45</td>\n",
       "      <td id=\"T_16cd6_row2_col2\" class=\"data row2 col2\" >0.15</td>\n",
       "      <td id=\"T_16cd6_row2_col3\" class=\"data row2 col3\" >-13.82</td>\n",
       "      <td id=\"T_16cd6_row2_col4\" class=\"data row2 col4\" >3.84</td>\n",
       "      <td id=\"T_16cd6_row2_col5\" class=\"data row2 col5\" >-4.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_16cd6_level0_row3\" class=\"row_heading level0 row3\" >P-value</th>\n",
       "      <td id=\"T_16cd6_row3_col0\" class=\"data row3 col0\" >0.00</td>\n",
       "      <td id=\"T_16cd6_row3_col1\" class=\"data row3 col1\" >0.00</td>\n",
       "      <td id=\"T_16cd6_row3_col2\" class=\"data row3 col2\" >0.88</td>\n",
       "      <td id=\"T_16cd6_row3_col3\" class=\"data row3 col3\" >0.00</td>\n",
       "      <td id=\"T_16cd6_row3_col4\" class=\"data row3 col4\" >0.00</td>\n",
       "      <td id=\"T_16cd6_row3_col5\" class=\"data row3 col5\" >0.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7f4c2b171a00>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Notes: this table provides means and medians of the Ratio of Replication Citations to Counterfactual Citations, for various counterfactuals relevant to editors. It also provides the standard errors of these means and medians which allows to analyze whether the ratio is statistically significantly \n",
      "different from one. The T-Stat and P-value rows give the t-statistic and p-value of this test. Columns I and II are based on table 2, columns III to VI on table 6.\n"
     ]
    }
   ],
   "source": [
    "# this is the one with per page citations - referee didnt like per page so kick out below\n",
    "cols = pd.MultiIndex.from_tuples([(\"Traditional Counterfactual\", \"(I) Mean, Citation Ratio\"), \n",
    "                                  (\"Traditional Counterfactual\", \"(II) Median, Citation Ratio\"),\n",
    "                                  (\"Same Issue Counterfactual\", \"(III) Mean, Mean Citation Ratio\"), \n",
    "                                  (\"Same Issue Counterfactual\", \"(IV) Median, Mean Citation Ratio\"),\n",
    "                                    (\"Same Issue Counterfactual\", \"(V) Mean, Median Citation Ratio\"), \n",
    "                                  (\"Same Issue Counterfactual\", \"(VI) Median, Median Citation Ratio\")])\n",
    "summarydf = pd.DataFrame(columns=cols)\n",
    "summarydf[(\"Traditional Counterfactual\", \"(I) Mean, Citation Ratio\")]=allest1['Mean Ratio, Standard Counterfactual']\n",
    "summarydf[(\"Traditional Counterfactual\", \"(II) Median, Citation Ratio\")]=allest1['Median Ratio, Standard Counterfactual']\n",
    "summarydf[(\"Same Issue Counterfactual\", \"(III) Mean, Mean Citation Ratio\")]=allest4['Mean Ratio, Mean Same Volume Counterfactual']\n",
    "summarydf[(\"Same Issue Counterfactual\", \"(IV) Median, Mean Citation Ratio\")]=allest4['Median Ratio, Mean Same Volume Counterfactual']\n",
    "summarydf[(\"Same Issue Counterfactual\", \"(V) Mean, Median Citation Ratio\")]=allest4['Mean Ratio, Median Same Volume Counterfactual']\n",
    "summarydf[(\"Same Issue Counterfactual\", \"(VI) Median, Median Citation Ratio\")]=allest4['Median Ratio, Median Same Volume Counterfactual']\n",
    "\n",
    "\n",
    "\n",
    "summarydf.index=['Mean/Median', 'Standard Error', 'P-value']\n",
    "\n",
    "summarydf.loc['T-Stat']=(summarydf.loc['Mean/Median']-1)/summarydf.loc['Standard Error']\n",
    "summarydf=summarydf.reindex(['Mean/Median', 'Standard Error', 'T-Stat', 'P-value'])\n",
    "\n",
    "display(summarydf.style.set_caption(\"Table 7: Mean/Median of Ratio of Replication Citations to Same Issue Counterfactual Citations - Counterfactuals Relevant to Editors\").format(precision=2).set_table_styles(styles))\n",
    "print('Notes: this table provides means and medians of the Ratio of Replication Citations to Counterfactual Citations, for various counterfactuals relevant to editors. It also provides the standard errors of these means and medians which allows to analyze whether the ratio is statistically significantly \\ndifferent from one. The T-Stat and P-value rows give the t-statistic and p-value of this test. Columns I and II are based on table 2, columns III to VI on table 6.')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "id": "13efa4e1-9792-40a8-a8b5-38d0b9ed2544",
   "metadata": {},
   "outputs": [],
   "source": [
    "# table 8 : citations by outcome of the replication\n",
    "import pandas as pd\n",
    "replications=pd.read_pickle('replications')\n",
    "originals=pd.read_pickle('originals')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "id": "05908337-1cad-4b8d-bc08-8bac65916f60",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style type=\"text/css\">\n",
       "#T_e9253 caption {\n",
       "  text-align: center;\n",
       "  font-size: 150%;\n",
       "  color: blue;\n",
       "}\n",
       "#T_e9253 td {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_e9253 th {\n",
       "  text-align: center;\n",
       "}\n",
       "#T_e9253 .true {\n",
       "  border-right: solid;\n",
       "  border-color: blue;\n",
       "  vertical-align: top;\n",
       "}\n",
       "#T_e9253_row0_col0, #T_e9253_row0_col1, #T_e9253_row0_col2, #T_e9253_row1_col0, #T_e9253_row1_col1, #T_e9253_row1_col2, #T_e9253_row2_col0, #T_e9253_row2_col1, #T_e9253_row2_col2, #T_e9253_row3_col0, #T_e9253_row3_col1, #T_e9253_row3_col2, #T_e9253_row4_col0, #T_e9253_row4_col1, #T_e9253_row4_col2, #T_e9253_row5_col0, #T_e9253_row5_col1, #T_e9253_row5_col2, #T_e9253_row6_col0, #T_e9253_row6_col1, #T_e9253_row6_col2 {\n",
       "  width: 500px;\n",
       "}\n",
       "</style>\n",
       "<table id=\"T_e9253\">\n",
       "  <caption>Table 8: Comparing Citations of Replications with Various Outcomes</caption>\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th class=\"blank level0\" >&nbsp;</th>\n",
       "      <th id=\"T_e9253_level0_col0\" class=\"col_heading level0 col0\" >Replication citations - Confirmed</th>\n",
       "      <th id=\"T_e9253_level0_col1\" class=\"col_heading level0 col1\" >Replication citations - Mixed/Unclear</th>\n",
       "      <th id=\"T_e9253_level0_col2\" class=\"col_heading level0 col2\" >Replication citations - Disconfirmed</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th id=\"T_e9253_level0_row0\" class=\"row_heading level0 row0\" >Mean</th>\n",
       "      <td id=\"T_e9253_row0_col0\" class=\"data row0 col0\" >2.03</td>\n",
       "      <td id=\"T_e9253_row0_col1\" class=\"data row0 col1\" >3.35</td>\n",
       "      <td id=\"T_e9253_row0_col2\" class=\"data row0 col2\" >3.56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_e9253_level0_row1\" class=\"row_heading level0 row1\" >Median</th>\n",
       "      <td id=\"T_e9253_row1_col0\" class=\"data row1 col0\" >1.07</td>\n",
       "      <td id=\"T_e9253_row1_col1\" class=\"data row1 col1\" >1.67</td>\n",
       "      <td id=\"T_e9253_row1_col2\" class=\"data row1 col2\" >1.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_e9253_level0_row2\" class=\"row_heading level0 row2\" >Min</th>\n",
       "      <td id=\"T_e9253_row2_col0\" class=\"data row2 col0\" >0.00</td>\n",
       "      <td id=\"T_e9253_row2_col1\" class=\"data row2 col1\" >0.00</td>\n",
       "      <td id=\"T_e9253_row2_col2\" class=\"data row2 col2\" >0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_e9253_level0_row3\" class=\"row_heading level0 row3\" >Q.1</th>\n",
       "      <td id=\"T_e9253_row3_col0\" class=\"data row3 col0\" >0.33</td>\n",
       "      <td id=\"T_e9253_row3_col1\" class=\"data row3 col1\" >0.67</td>\n",
       "      <td id=\"T_e9253_row3_col2\" class=\"data row3 col2\" >0.69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_e9253_level0_row4\" class=\"row_heading level0 row4\" >Q.3</th>\n",
       "      <td id=\"T_e9253_row4_col0\" class=\"data row4 col0\" >1.86</td>\n",
       "      <td id=\"T_e9253_row4_col1\" class=\"data row4 col1\" >3.91</td>\n",
       "      <td id=\"T_e9253_row4_col2\" class=\"data row4 col2\" >3.75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_e9253_level0_row5\" class=\"row_heading level0 row5\" >Max</th>\n",
       "      <td id=\"T_e9253_row5_col0\" class=\"data row5 col0\" >24.75</td>\n",
       "      <td id=\"T_e9253_row5_col1\" class=\"data row5 col1\" >23.10</td>\n",
       "      <td id=\"T_e9253_row5_col2\" class=\"data row5 col2\" >79.42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th id=\"T_e9253_level0_row6\" class=\"row_heading level0 row6\" ># Obs.</th>\n",
       "      <td id=\"T_e9253_row6_col0\" class=\"data row6 col0\" >89</td>\n",
       "      <td id=\"T_e9253_row6_col1\" class=\"data row6 col1\" >109</td>\n",
       "      <td id=\"T_e9253_row6_col2\" class=\"data row6 col2\" >230</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x7f4c2ac5f6d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Notes: this table is based on 428 replication. It compares replications on the basis of the outcome of the replication, whether the replication \n",
      "confirmed or disconfirmed the original paper, or had found mixed results. Q1 and Q3 are the first and third quartile.\n"
     ]
    }
   ],
   "source": [
    "\n",
    "replcites4 = pd.DataFrame(replications,columns=['Confirmed (1,0)', 'Disconfirmed (1,0)', 'Mixed/Unclear (1,0)'])\n",
    "replcites4['EID replication'] = replications['EID replication']\n",
    "replcites4['Replication Year'] = replications['Replication Year']\n",
    "replcites4['Replication Cite no.'] = replications['Replication Cite no.']\n",
    "replcites4['Original cites after replication'] = originals['Original cites after replication']\n",
    "replcites4 = replcites4.dropna()\n",
    "replcites4 = replcites4.reset_index(drop=True)\n",
    "# since there are no originals with 0 citations after the replication we can look at ratio\n",
    "replcites4['Ratio Standard Counterfactual']=replcites4['Replication Cite no.']/replcites4['Original cites after replication']\n",
    "\n",
    "\n",
    "replcites5=replcites4[replcites4['Confirmed (1,0)']==1]\n",
    "replcites6=replcites4[replcites4['Disconfirmed (1,0)']==1]\n",
    "replcites7=replcites4[replcites4['Mixed/Unclear (1,0)']==1]\n",
    "\n",
    "summarydf = pd.DataFrame()\n",
    "summarydf[\"Replication citations - Confirmed\"] = (replcites5['Replication Cite no.']/(2025-replcites5['Replication Year'])).describe()\n",
    "summarydf[\"Replication citations - Mixed/Unclear\"] = (replcites7['Replication Cite no.']/(2025-replcites7['Replication Year'])).describe()\n",
    "summarydf[\"Replication citations - Disconfirmed\"] = (replcites6['Replication Cite no.']/(2025-replcites6['Replication Year'])).describe()\n",
    "\n",
    "\n",
    "styles = [{'selector': 'caption', 'props': 'text-align: center; font-size: 150%; color: blue'},\n",
    "        {'selector': 'td', 'props': 'text-align: center;'},\n",
    "         {'selector': 'th', 'props': 'text-align: center;'},  \n",
    "         {'selector': '.true', 'props': 'border-right:solid; border-color:blue; vertical-align:top'}]\n",
    "\n",
    "a=summarydf.T[['mean','50%','min',\t'25%'\t,'75%',\t'max','count']]\n",
    "a=a.round(2)\n",
    "a['count']=a['count'].apply(lambda x: f'{x:.0f}')\n",
    "a=a.rename(columns={'50%': 'Median', 'mean': 'Mean', '25%': 'Q.1', '75%': 'Q.3', 'max': 'Max', 'min': 'Min', 'count': '# Obs.'})\n",
    "display(a.T.style.set_caption(\"Table 8: Comparing Citations of Replications with Various Outcomes\").format(precision=2).set_table_styles(styles).set_properties(**{'width': '500px'}))\n",
    "print('Notes: this table is based on 428 replication. It compares replications on the basis of the outcome of the replication, whether the replication \\nconfirmed or disconfirmed the original paper, or had found mixed results. Q1 and Q3 are the first and third quartile.')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "id": "c9f127a8-e340-4403-8d74-b45628c32d10",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "428\n",
      "428\n",
      "A. Same Issue (Mean): OLS\n",
      "Ratio = 0.725   + 0.411 * Mixed/Unclear + 0.344 * Disconfirmed\n",
      "         (0.106)   (0.188)                 (0.191)             \n",
      "1) H_0:B_mixed=0, t= 2.18 p= 0.03\n",
      "2) H_0:B_disconfirmed=0, t= 1.8 p= 0.07\n",
      "3) H_0: B_mixed=B_disconfirmed, t= 0.3 p= 0.76\n",
      "4) H_0: B_mixed=B_disconfirmed=0, f= 3.07 p= 0.05\n",
      "B. Same Issue (Mean): Quantile Regression\n",
      "Ratio = 0.366   + 0.253 * Mixed/Unclear + 0.121 * Disconfirmed\n",
      "         (0.075)   (0.101)                 (0.089)             \n",
      "1) H_0:B_mixed=0, t= 2.5 p= 0.01\n",
      "2) H_0:B_disconfirmed=0, t= 1.37 p= 0.17\n",
      "3) H_0: B_mixed=B_disconfirmed, t= 1.61 p= 0.11\n",
      "4) H_0: B_mixed=B_disconfirmed=0, f= 3.16 p= 0.04\n",
      "C. Same Issue (Median): OLS\n",
      "Ratio = 1.300   + 0.427 * Mixed/Unclear + 0.464 * Disconfirmed\n",
      "         (0.278)   (0.376)                 (0.392)             \n",
      "1) H_0:B_mixed=0, t= 1.14 p= 0.26\n",
      "2) H_0:B_disconfirmed=0, t= 1.18 p= 0.24\n",
      "3) H_0: B_mixed=B_disconfirmed, t= -0.1 p= 0.92\n",
      "4) H_0: B_mixed=B_disconfirmed=0, f= 0.88 p= 0.41\n",
      "D. Same Issue (Median): Quantile Regression\n",
      "Ratio = 0.600   + 0.200 * Mixed/Unclear + 0.165 * Disconfirmed\n",
      "         (0.114)   (0.153)                 (0.134)             \n",
      "1) H_0:B_mixed=0, t= 1.31 p= 0.19\n",
      "2) H_0:B_disconfirmed=0, t= 1.23 p= 0.22\n",
      "3) H_0: B_mixed=B_disconfirmed, t= 0.28 p= 0.78\n",
      "4) H_0: B_mixed=B_disconfirmed=0, f= 0.99 p= 0.37\n"
     ]
    }
   ],
   "source": [
    "import statsmodels.api as sm \n",
    "from statsmodels.regression.quantile_regression import QuantReg\n",
    "import numpy as np\n",
    "# prepare data\n",
    "allresults=[]\n",
    "#replications2=replications[replications['Replication page count'].notna()]\n",
    "replications2=replications\n",
    "\n",
    "\n",
    "a=pd.DataFrame()\n",
    "a['Ratio Citations']=(replications2['Replication Cite no.'])/(replications2['Average citations of papers in same volume'])\n",
    "a['Mixed/Unclear']=replications2['Mixed/Unclear (1,0)']\n",
    "a['Disconfirmed']=replications2['Disconfirmed (1,0)']\n",
    "a['Constant']=1\n",
    "print(len(a))\n",
    "a=a.dropna()\n",
    "print(len(a))\n",
    "# OLS regression without page nrs\n",
    "x = a[['Constant','Mixed/Unclear','Disconfirmed']]\n",
    "y=a['Ratio Citations']\n",
    "\n",
    "model = sm.OLS(y, x, missing='drop')\n",
    "results = model.fit(use_t=True, cov_type='HC2')\n",
    "#print(results.summary())\n",
    "\n",
    "coefficients = results.params\n",
    "std_errors = results.bse\n",
    "\n",
    "# Determine column widths for alignment\n",
    "terms = [\n",
    "    f\"{coefficients[i]:.3f}\" + (f\" * {results.model.exog_names[i]}\" if i > 0 else \"\")\n",
    "    for i in range(len(coefficients))\n",
    "]\n",
    "std_errs = [f\"({std_errors[i]:.3f})\" for i in range(len(std_errors))]\n",
    "max_widths = [max(len(term), len(std_err)) for term, std_err in zip(terms, std_errs)]\n",
    "\n",
    "# Format the lines\n",
    "estimate_line = \" + \".join(f\"{term:<{max_widths[i]}}\" for i, term in enumerate(terms))\n",
    "stderr_line = \"   \".join(f\"{std_err:<{max_widths[i]}}\" for i, std_err in enumerate(std_errs))\n",
    "\n",
    "# Combine the lines\n",
    "formatted_output = f\"Ratio = {estimate_line}\\n         {stderr_line}\"\n",
    "\n",
    "print('A. Same Issue (Mean): OLS')\n",
    "print(formatted_output)\n",
    "#allest10.at[0,'(I) Mean Ratio, Median Same Volume Counterfactual, Confirmed']=results.params[0]\n",
    "#allest10.at[1,'(I) Mean Ratio, Median Same Volume Counterfactual, Confirmed']=results.bse[0]\n",
    "\n",
    "print('1) H_0:B_mixed=0, t=', np.round(results.tvalues[1],2), 'p=',np.round(results.pvalues[1],2))\n",
    "print('2) H_0:B_disconfirmed=0, t=', np.round(results.tvalues[2],2), 'p=',np.round(results.pvalues[2],2))\n",
    "\n",
    "hypotheses = 'Mixed/Unclear=Disconfirmed'\n",
    "t_test = results.t_test(hypotheses)\n",
    "print('3) H_0: B_mixed=B_disconfirmed, t=', np.round(t_test.statistic[0][0],2), 'p=',np.round(t_test.pvalue,2))\n",
    "\n",
    "#allest10.at[2,'(I) Mean Ratio, Median Same Volume Counterfactual, Confirmed']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "R = [[0, 1, 0],  # Test if coefficient for Mixed/Unclear (1,0) = 0\n",
    "     [0, 0, 1]]  # Test if coefficient for Disconfirmed (1,0) = 0\n",
    "f_test_result = results.f_test(R)\n",
    "print('4) H_0: B_mixed=B_disconfirmed=0, f=', np.round(f_test_result.statistic,2), 'p=',np.round(f_test_result.pvalue,2))#allresults += [results]\n",
    "\n",
    "\n",
    "quantile = 0.5\n",
    "model = sm.QuantReg(y, x)\n",
    "results = model.fit(q=quantile)\n",
    "\n",
    "\n",
    "coefficients = results.params\n",
    "std_errors = results.bse\n",
    "\n",
    "# Determine column widths for alignment\n",
    "terms = [\n",
    "    f\"{coefficients[i]:.3f}\" + (f\" * {results.model.exog_names[i]}\" if i > 0 else \"\")\n",
    "    for i in range(len(coefficients))\n",
    "]\n",
    "std_errs = [f\"({std_errors[i]:.3f})\" for i in range(len(std_errors))]\n",
    "max_widths = [max(len(term), len(std_err)) for term, std_err in zip(terms, std_errs)]\n",
    "\n",
    "# Format the lines\n",
    "estimate_line = \" + \".join(f\"{term:<{max_widths[i]}}\" for i, term in enumerate(terms))\n",
    "stderr_line = \"   \".join(f\"{std_err:<{max_widths[i]}}\" for i, std_err in enumerate(std_errs))\n",
    "\n",
    "# Combine the lines\n",
    "formatted_output = f\"Ratio = {estimate_line}\\n         {stderr_line}\"\n",
    "\n",
    "print('B. Same Issue (Mean): Quantile Regression')\n",
    "\n",
    "print(formatted_output)\n",
    "#allest10.at[0,'(I) Mean Ratio, Median Same Volume Counterfactual, Confirmed']=results.params[0]\n",
    "#allest10.at[1,'(I) Mean Ratio, Median Same Volume Counterfactual, Confirmed']=results.bse[0]\n",
    "\n",
    "print('1) H_0:B_mixed=0, t=', np.round(results.tvalues[1],2), 'p=',np.round(results.pvalues[1],2))\n",
    "print('2) H_0:B_disconfirmed=0, t=', np.round(results.tvalues[2],2), 'p=',np.round(results.pvalues[2],2))\n",
    "\n",
    "hypotheses = 'Mixed/Unclear=Disconfirmed'\n",
    "t_test = results.t_test(hypotheses)\n",
    "print('3) H_0: B_mixed=B_disconfirmed, t=', np.round(t_test.statistic[0][0],2), 'p=',np.round(t_test.pvalue,2))\n",
    "\n",
    "#allest10.at[2,'(I) Mean Ratio, Median Same Volume Counterfactual, Confirmed']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "R = [[0, 1, 0],  # Test if coefficient for Mixed/Unclear (1,0) = 0\n",
    "     [0, 0, 1]]  # Test if coefficient for Disconfirmed (1,0) = 0\n",
    "f_test_result = results.f_test(R)\n",
    "print('4) H_0: B_mixed=B_disconfirmed=0, f=', np.round(f_test_result.statistic,2), 'p=',np.round(f_test_result.pvalue,2))#allresults += [results]\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "a=pd.DataFrame()\n",
    "a['Ratio Citations']=(replications2['Replication Cite no.'])/(replications2['Median citations of papers in same volume'])\n",
    "a['Mixed/Unclear']=replications2['Mixed/Unclear (1,0)']\n",
    "a['Disconfirmed']=replications2['Disconfirmed (1,0)']\n",
    "a['Constant']=1\n",
    "a=a.dropna()\n",
    "# OLS regression without page nrs\n",
    "x = a[['Constant','Mixed/Unclear','Disconfirmed']]\n",
    "y=a['Ratio Citations']\n",
    "\n",
    "model = sm.OLS(y, x, missing='drop')\n",
    "results = model.fit(use_t=True, cov_type='HC2')\n",
    "#print(results.summary())\n",
    "\n",
    "coefficients = results.params\n",
    "std_errors = results.bse\n",
    "\n",
    "# Determine column widths for alignment\n",
    "terms = [\n",
    "    f\"{coefficients[i]:.3f}\" + (f\" * {results.model.exog_names[i]}\" if i > 0 else \"\")\n",
    "    for i in range(len(coefficients))\n",
    "]\n",
    "std_errs = [f\"({std_errors[i]:.3f})\" for i in range(len(std_errors))]\n",
    "max_widths = [max(len(term), len(std_err)) for term, std_err in zip(terms, std_errs)]\n",
    "\n",
    "# Format the lines\n",
    "estimate_line = \" + \".join(f\"{term:<{max_widths[i]}}\" for i, term in enumerate(terms))\n",
    "stderr_line = \"   \".join(f\"{std_err:<{max_widths[i]}}\" for i, std_err in enumerate(std_errs))\n",
    "\n",
    "# Combine the lines\n",
    "formatted_output = f\"Ratio = {estimate_line}\\n         {stderr_line}\"\n",
    "\n",
    "print('C. Same Issue (Median): OLS')\n",
    "print(formatted_output)\n",
    "#allest10.at[0,'(I) Mean Ratio, Median Same Volume Counterfactual, Confirmed']=results.params[0]\n",
    "#allest10.at[1,'(I) Mean Ratio, Median Same Volume Counterfactual, Confirmed']=results.bse[0]\n",
    "\n",
    "print('1) H_0:B_mixed=0, t=', np.round(results.tvalues[1],2), 'p=',np.round(results.pvalues[1],2))\n",
    "print('2) H_0:B_disconfirmed=0, t=', np.round(results.tvalues[2],2), 'p=',np.round(results.pvalues[2],2))\n",
    "\n",
    "hypotheses = 'Mixed/Unclear=Disconfirmed'\n",
    "t_test = results.t_test(hypotheses)\n",
    "print('3) H_0: B_mixed=B_disconfirmed, t=', np.round(t_test.statistic[0][0],2), 'p=',np.round(t_test.pvalue,2))\n",
    "\n",
    "#allest10.at[2,'(I) Mean Ratio, Median Same Volume Counterfactual, Confirmed']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "R = [[0, 1, 0],  # Test if coefficient for Mixed/Unclear (1,0) = 0\n",
    "     [0, 0, 1]]  # Test if coefficient for Disconfirmed (1,0) = 0\n",
    "f_test_result = results.f_test(R)\n",
    "print('4) H_0: B_mixed=B_disconfirmed=0, f=', np.round(f_test_result.statistic,2), 'p=',np.round(f_test_result.pvalue,2))#allresults += [results]\n",
    "\n",
    "\n",
    "quantile = 0.5\n",
    "model = sm.QuantReg(y, x)\n",
    "results = model.fit(q=quantile)\n",
    "\n",
    "\n",
    "coefficients = results.params\n",
    "std_errors = results.bse\n",
    "\n",
    "# Determine column widths for alignment\n",
    "terms = [\n",
    "    f\"{coefficients[i]:.3f}\" + (f\" * {results.model.exog_names[i]}\" if i > 0 else \"\")\n",
    "    for i in range(len(coefficients))\n",
    "]\n",
    "std_errs = [f\"({std_errors[i]:.3f})\" for i in range(len(std_errors))]\n",
    "max_widths = [max(len(term), len(std_err)) for term, std_err in zip(terms, std_errs)]\n",
    "\n",
    "# Format the lines\n",
    "estimate_line = \" + \".join(f\"{term:<{max_widths[i]}}\" for i, term in enumerate(terms))\n",
    "stderr_line = \"   \".join(f\"{std_err:<{max_widths[i]}}\" for i, std_err in enumerate(std_errs))\n",
    "\n",
    "# Combine the lines\n",
    "formatted_output = f\"Ratio = {estimate_line}\\n         {stderr_line}\"\n",
    "\n",
    "print('D. Same Issue (Median): Quantile Regression')\n",
    "\n",
    "print(formatted_output)\n",
    "#allest10.at[0,'(I) Mean Ratio, Median Same Volume Counterfactual, Confirmed']=results.params[0]\n",
    "#allest10.at[1,'(I) Mean Ratio, Median Same Volume Counterfactual, Confirmed']=results.bse[0]\n",
    "\n",
    "print('1) H_0:B_mixed=0, t=', np.round(results.tvalues[1],2), 'p=',np.round(results.pvalues[1],2))\n",
    "print('2) H_0:B_disconfirmed=0, t=', np.round(results.tvalues[2],2), 'p=',np.round(results.pvalues[2],2))\n",
    "\n",
    "hypotheses = 'Mixed/Unclear=Disconfirmed'\n",
    "t_test = results.t_test(hypotheses)\n",
    "print('3) H_0: B_mixed=B_disconfirmed, t=', np.round(t_test.statistic[0][0],2), 'p=',np.round(t_test.pvalue,2))\n",
    "\n",
    "#allest10.at[2,'(I) Mean Ratio, Median Same Volume Counterfactual, Confirmed']=t_test.summary_frame()['P>|t|'].values[0]\n",
    "\n",
    "R = [[0, 1, 0],  # Test if coefficient for Mixed/Unclear (1,0) = 0\n",
    "     [0, 0, 1]]  # Test if coefficient for Disconfirmed (1,0) = 0\n",
    "f_test_result = results.f_test(R)\n",
    "print('4) H_0: B_mixed=B_disconfirmed=0, f=', np.round(f_test_result.statistic,2), 'p=',np.round(f_test_result.pvalue,2))#allresults += [results]\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "96f6f334-158b-4537-8f8f-a5fbc6c926da",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "15e162f2-5cf9-4c57-8fef-5a7e2b7f6c14",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2d9d95f5-9923-41a0-b229-dc803e20248f",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0baf3497-bdfe-4539-82a7-a445349ba5d9",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "00d9b7eb-d6f8-4dac-9651-5ed632b204fd",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "71638ecb-6542-4404-9c7f-2944d7fafa40",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "518d9723-31a4-4ac6-a142-f012ca193026",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e9ce907e-f1ac-4b0b-86ae-22b8ef73ddc3",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3cd50b12-d6d0-4d99-bbc7-490cd29f2ef2",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "adeee44b-7d89-403a-80b7-ded68d2f77f4",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "66b7662a-dcd8-42dc-a537-c04c6d849c52",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "04329625-2a64-460b-9364-5880bfc337ee",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1b646915-ee3b-4603-b68e-3b26a51e9e8e",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.16"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
